我有一些像这样生成的XML
<resource id="1759" key="8f0ab89b:fb7b:45aa:8863:5c8cf4692194" parentID="1701" level="3" creatorID="0" sortOrder="5" createDate="2018:03:28T13:59:22" updateDate="2018:04:17T15:06:25" nodeName="facebook" urlName="facebook" path=":1,1378,1701,1759" isDoc="" nodeType="1705" creatorName="Scott" writerName="Scott" writerID="0" template="0" nodeTypeAlias="resource">
<resourceImage>{
"focalPoint": {
"left": 0.5,
"top": 0.5
},
"src": "/media/9566/ddd:col_116588_020117_1999x614.jpg",
"crops": [
{
"alias": "Resource",
"width": 320,
"height": 238
}
]
}</resourceImage>
<categories>Case Studies</categories>
<resourceLink>http://facebook.com</resourceLink>
<topic>Admissions</topic>
</resource>
我试图使用Xpath Expression来选择主题和类别,如
//* [@id=1701]//*[@isDoc]/ topic[text()[contains(.,'Admissions')]] and category[text()[contains(.,'Webinar')]] /..
然而,我得不到匹配。我只需使用之类的参数即可使其工作
//* [@id=1701]//*[@isDoc]/ topic[text()[contains(.,'Admissions')]]/..
但是我确实需要能够通过两个参数进行过滤。我怎么做逻辑运算符错了?
感谢
答案 0 :(得分:1)
您可以将所有条件放入一个谓词中,然后and
。我将@id
更改为parentID
以匹配该号码。否则它就不会匹配样本数据。
匹配四个条件的XPath可以是:
//*[@parentID='1701' and @isDoc and contains(topic/text(),'Admissions') and contains(categories/text(),'Case Studies')]