我有以下部分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;
但它返回第二个值作为标题变量的结果,如“评级明星”
答案 0 :(得分:2)
这正是人们建议不要使用text()的原因,除非你有非常专业的要求。应用于节点的XPath函数string()返回节点的字符串值,对于元素,该元素是所有包含文本的串联,忽略标记 - 这正是您要查找的内容。所以你想要string(subject/title)
。如果您正在使用Java API,请注意结果现在是字符串,而不是节点集。
答案 1 :(得分:0)
也许你可以试试string(subject/title)
。我暂时无法访问Java,但字符串操作在XPath中很常见。它应该连接文本内容而不留下任何元素的痕迹。