我遇到了这个奇怪的 XML 解析问题。
我正在尝试解析这个 XML 字符串
<?xml version="1.0"?>
<response status="success">
<lot>32342</lot>
</response>
为了做到这一点,我将 XPath 与 Java 结合使用。我使用 Xpath 表达式“/response/@status”来查找文本“success”。然而,每当我评估这个表达式时,我都会得到一个空字符串。
但是我能够使用“/response/@type”成功解析该字符串
<?xml version="1.0"?>
<response type="success">
<lot>32342</lot>
</response>
那么为什么简单地更改属性名称就会将返回字符串更改为空?
is = new InputSource(new StringReader(testWOcreateStrGood));
xPathexpressionSuccess = xPath.compile("/response/@status");
responseStr = xPathexpressionSuccess.evaluate(is);
reponseStr 是我之前发布的带有“status”属性的字符串
我还声明了 testWOcreateStrGood 如下
private String testWOcreateStrGood = "<?xml version=\"1.0\"?>\n" +
"<response status=\"success\">\n" +
"<lot>32342</lot>\n" +
"</response>";
最佳答案
那么为什么简单地更改属性名称就会将返回字符串更改为空?
不应该。您一定做错了其他事情,例如访问错误的 XML 文档或者实际上没有使用您认为正在使用的 XPath 表达式。
<小时/>您的代码示例:
查看 InputSource
的 API 文档。您不能将 XML 文档作为字符串直接传递给构造函数。
关于java - XML解析问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2525206/