java - XML解析问题

标签 java xml xpath

我遇到了这个奇怪的 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/

相关文章:

java - 使用 Java 反射实例化对象

.net - XmlDocument.CreateElement ("prefix:child") 没有设置 NamespaceURI

python - lxml xpath 如何处理xml实体

java - Fragment.java 错误 :(94, 51) 错误:不兼容的类型:NewsFragment 无法转换为 Context

java - 映射者 : Hibernate

Java - 从另一个类更新对象

sql - 在 Oracle (SQL) 中读取嵌套的 XML

php - 将两个数组合并为一个数组

python - Xpath 规范化空间

xml - 需要 XPath ends-with 函数