使用XPath并给出以下XML,我可以找到所有=
的记录strXpath = "//pub-code/ad-type[class-code='XX Cls Employment']" (works)
Set nlAds = xmlDoc.documentElement.selectNodes(strXPath)
如何获取=
的所有记录strXpath = "//pub-code[ad-type='XX Cls Display']" (doesn't work)?
Set nlAds = xmlDoc.documentElement.selectNodes(strXPath)
第二个XPath仅在标记位于同一行时才有效。
我显然缺少一些东西。我花了好几个小时尝试了很多不同的建议,但似乎都没有。
<web-export>
<run-date>11/08/2015
<pub-code>XX Domain.com
<ad-type>XX Cls Display
<cat-code>Employment</cat-code>
<class-code>XX Cls Employment</class-code>
<ad-number>00000123456</ad-number>
</ad-type>
</pub-code>
</run-date>
</web-export>
答案 0 :(得分:2)
问题可能是文本节点跨越到下一行,因此它不等于您正在搜索的字符串。
在
之前修剪文本//pub-code[normalize-space(ad-type/text()) = 'XX Cls Display']
或测试字符串是否包含在内:
//pub-code[contains(ad-type/text(), 'XX Cls Display')]
答案 1 :(得分:0)
试试这个?
//pub-code[normalize-space(ad-type/text())='XX Cls Display']
答案 2 :(得分:0)
您可以使用//pub-code[ad-type[starts-with(., 'XX Cls Display')]]
或//pub-code[ad-type[contains(., 'XX Cls Display')]]
。请参阅http://xsltransform.net/jyRYYia。