gpt4 book ai didi

xml - Web 服务响应中的 XML 格式无效

转载 作者:行者123 更新时间:2023-12-04 05:15:54 25 4
gpt4 key购买 nike

我正在使用 Play 1.2.4,我需要调用第三方 Web 服务。当我得到响应时,我无法通过 XPath 正确解析它,因为它包含无效的 XML 格式。

回复有 &gt;&lt;而不是 <> .我试图解码响应但没有运气。我还检查了看起来不错的响应内容 "application/soap+xml"。

那么我该如何替换这个字符。除了使用正则表达式的简单字符串替换函数之外,是否有一种优雅的方法来替换/转换它。

编辑:这里有一个更好的主意是我如何调用 Web 服务。

HttpResponse response = WS.url(WS_URL)
.setHeader("Content-Type","application/soap+xml")
.body(wsBody)
.post();

这是我要解析的内容:
org.w3.dom.Document xmlDoc = response.getXML();
String textOfSelectedTag = XPath.selectText("tag", xmlDoc);

并且 XPath 找不到标签,因为它不是像 <tag> 这样的格式就像 &lt;tag&gt;

最佳答案

我猜你的 XML 有很好的根元素!否则 xmlDoc = response.getXML();应该有错误!我认为 XML 中很少或很多元素是这样出现的!如果我没记错的话,负责生成此类文件的是 Web 服务上的 XML 构建器!这不是因为你阅读它的方式!

在这种情况下,我们无能为力!我遇到过这样的情况,其中其他成员遇到了编码不正确的 XML。对于这种情况,我一直建议的是修改生成此类 XML 的代码(如果您有权访问,那就是柜面),否则……我们将剩下的就是正则表达式或字符串操作!这虽然不是首选,但只是可用的方法。

我看到的这种 XML 代码的原因之一是,因为使用了字符串连接!所以我的第一个建议是修改生成 XML 的源代码。

用于替换的正则表达式模式 &lt;<&gt;> :

string result = Regex.Replace(Regex.Replace(input, @"(\&lt;)", @"<"), @"(\&gt;)", @">");

关于xml - Web 服务响应中的 XML 格式无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14278614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com