Java 连接两个XPath查询

Java 连接两个XPath查询,java,xml,xpath,xquery,Java,Xml,Xpath,Xquery,我是XML新手,我想加入这两个查询 /ADOXML/MODELS/MODEL/INSTANCE[@class='Activity'] 及 我试过: /ADOXML/MODELS/MODEL/INSTANCE[@class='Activity'] | /ADOXML/MODELS/MODEL/INSTANCE/ATTRIBUTE[@name='Description' and @type='STRING'] 但问题是,它使用我的代码给出了错误的输出: NodeList nodeList

我是XML新手,我想加入这两个查询

 /ADOXML/MODELS/MODEL/INSTANCE[@class='Activity']

我试过:

  /ADOXML/MODELS/MODEL/INSTANCE[@class='Activity'] | /ADOXML/MODELS/MODEL/INSTANCE/ATTRIBUTE[@name='Description' and @type='STRING']
但问题是,它使用我的代码给出了错误的输出:

NodeList nodeList = (NodeList) xPath.compile(expression).evaluate(document, XPathConstants.NODESET);

ArrayList<String> text = new ArrayList<String>();

int k;
for (k = 0; k < nodeList.getLength(); k++) {

 String txt=nodeList.item(k).getTextContent();
 txt=txt.replace("[","").replace("]","").replace("#","").replace(":", "").replace("•", "").replace("\n", " ")
       .replace("\u0092", " ").replace("'", "").replace("•", " ").replace("-", " ").replace("’", " ").replace("\n", " ");


text.add(txt);


}
因此,如何使用/ADOXML/MODELS/MODEL/INSTANCE[@class='Activity']将上述两个查询连接起来

,您正在选择一个具有条件的实例;使用/ADOXML/MODELS/MODEL/INSTANCE/ATTRIBUTE[@name='Description'和@type='STRING']可以选择一个带有条件的属性

改为:

/ADOXML/MODELS/MODEL/INSTANCE[@class='Activity'] | /ADOXML/MODELS/MODEL/INSTANCE/ATTRIBUTE[@name='Description' and @type='STRING']/..

现在,它将选择符合不同标准的实例。/。。返回到一个级别以选择XPATH中的父元素而不是terminal元素。

当您使用XPATH的每一半运行时,|是否获得正确的输出?原始XML是什么样子的?您可能还想查看什么字符串txt=nodeList.itemk.getTextContent;在处理它之前使用.replace.Define错误-您使用的是什么XML、您想要什么输出、您实际得到的是什么以及两者的区别是什么?它为我提供了节点x6.5cm y10.5cm index7 EXPR exprcond avalf%o、负责角色。。。此类输出请编辑问题,以包含您正在查询的XML、您想要的输出和您当前获得的输出的示例。我们无法读懂你的想法,知道什么是对的或错的,如果我们不知道你从什么输入开始,我们也无法建议如何纠正它。
/ADOXML/MODELS/MODEL/INSTANCE[@class='Activity'] | /ADOXML/MODELS/MODEL/INSTANCE/ATTRIBUTE[@name='Description' and @type='STRING']/..