Java 使用Jdom/XPath和&;引用;
我正在开发一个具有以下类型xml文件的应用程序(Java 使用Jdom/XPath和&;引用;,java,xpath,jdom,Java,Xpath,Jdom,我正在开发一个具有以下类型xml文件的应用程序(document.xml): 应用程序正在使用Jdom 1.1.3 <dependency> <groupId>org.jdom</groupId> <artifactId>jdom</artifactId> <version>1.1.3</version> </dependency> org.jdom Java文档对象模型 1.1
document.xml
):
应用程序正在使用Jdom 1.1.3
<dependency>
<groupId>org.jdom</groupId>
<artifactId>jdom</artifactId>
<version>1.1.3</version>
</dependency>
org.jdom
Java文档对象模型
1.1.3
如何更改xpath表达式以返回第二个元素?这个版本的Jdom是否可以实现这一点
谢谢你的帮助 试试这个表达式:
String problemXPath = "/root/subRoot[@myAttribute='CN=\"Problem\"']";
首先,解析文档时,实体“
被替换为”
字符,因此应该直接在XPath表达式中使用该字符
其次,在XPath中,可以对字符串常量使用单引号或双引号,如果字符串中包含引号,这将非常方便。尝试解决方法
/root/subRoot[以(@myAttribute,\“CN=\”)开头,并包含(@myAttribute,\“Problem\”)
谢谢@anderson。我喜欢这个想法,它可能会与我的例子一起工作。但我觉得我把它简化得太多了。最后,我可能会选择另一个所需的元素。我真的需要选择像“CN=Problem”这样的东西,而不是“CN=something,…Problem”。好的。另一种解决方法是/root/subRoot[包含(@myAttribute,\“CN=\”,\“Problem\”)后面的子字符串)和字符串长度(@myAttribute)=12]
。这应该与所需的节点匹配。例外情况是CN=Problem“
,CN=&Problem&“
,CN=Problems”
,等等……所以只有两个字符不同,因为在现实生活中属性值更复杂,我认为@四十二的答案更简单。谢谢你的帮助。
<dependency>
<groupId>org.jdom</groupId>
<artifactId>jdom</artifactId>
<version>1.1.3</version>
</dependency>
String problemXPath = "/root/subRoot[@myAttribute='CN=\"Problem\"']";