【发布时间】:2016-08-15 18:55:23
【问题描述】:
我正在尝试获取比较器具有 VALUE = item.auxiliaryData.productRef.brandName 的 STRING-VALUE 的内容
我尝试使用以下代码,
XPathExpression expr = xpath.compile
("//comparator[contains(VALUE,'item.auxiliaryData.productRef.ancestorCategoryIds')]//STRING-VALUE");
productRefs = (NodeList) expr.evaluate(doc, XPathConstants.NODESET);
这就是我要解析的内容
<comparator NAME="equals">
<VALUE>item.auxiliaryData.productRef.brandName</VALUE>
<CONSTANT>
<DATA-TYPE>java.lang.STRING</DATA-TYPE>
<STRING-VALUE>Ariat</STRING-VALUE>
</CONSTANT>
</comparator>
<comparator NAME="equals">
<VALUE>item.auxiliaryData.productRef.ID</VALUE>
<CONSTANT>
<DATA-TYPE>java.util.Collection</DATA-TYPE>
<STRING-VALUE>84332</STRING-VALUE>
<STRING-VALUE>79904</STRING-VALUE>
<STRING-VALUE>82203</STRING-VALUE>
</CONSTANT>
</comparator>
【问题讨论】:
-
好的。你得到了什么?
-
您正在使用
contains(X, Y),您可能打算使用X=Y。这是一个常见的错误:人们认为“节点包含价值”。但是contains()测试子字符串,并且更昂贵:contains(<A>foxy</A>, 'xy')是真的。但是,我怀疑这是您的问题的原因。
标签: java xml xpath xpath-2.0 domxpath