java - 从 xpath 中查找包含标签作为 Java 子元素的字符串

标签 java jaxb marshalling unmarshalling for-xml-path

我有以下部分 XML 代码,我想从特定标记获取字符串。

输入 XML:

<subject>
   <title> this title has 5 <sup>+</sup> rating star </title>
</subject>

从上面的 XML 我想要一个使用 xpath 的字符串

预期输出:

"this title has 5+ rating star"

注意:我已经使用了@XmlPath,例如

@XmlPath('subject/title/text()')
private String title;

但它返回第二个值作为标题变量的结果,例如“评级明星”

最佳答案

这正是人们建议不要使用 text() 的原因,除非您有非常特殊的要求。应用于节点的 XPath 函数 string() 返回节点的字符串值,对于元素来说,该值是所有包含的文本的串联,忽略标记 - 这正是您正在寻找的内容。所以你需要字符串(主题/标题)。如果您使用的是 Java API,请注意,结果现在将是一个字符串,而不是节点集。

关于java - 从 xpath 中查找包含标签作为 Java 子元素的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49108332/

相关文章:

java - Collectors.tomap 和 HeaderEelement 的 getValue 和 getNmae 的问题

java - 为什么 String.replace 不起作用?

java - 由 : java. lang.IllegalArgumentException 引起:至少提供了 1 个参数,但查询中仅存在 0 个参数

java - JAXBElement 优于 ArrayList?

java - JAXB 泛型 @XmlValue

java - RxJava 允许多次 onError 调用

java - 为什么我的 xml 的 JAXB namespace 设置为默认 ns1?

java - 在 Java 中为 xml 添加新的根元素

java - 从 xsd 创建静态变量

java - 编码 DefaultListModel 不写入数据