我使用XPath并包含函数有问题.想象下面的
XML示例:
<doc> <Test> <Name>1 Pre Histoy</Name> <Type>Known</Type> <Data> <Name>Dinasor</Name> <Name>Fish</Name> </Data> </Test> <Test> <Name>1 Post Histoy</Name> <Type>Known</Type> <Data> <Name>Human</Name> <Name>Dog</Name> </Data> </Test> <Test> <Name>1 Post Histoy</Name> <Type>UNKNOWN</Type> <Data> <Name>Human</Name> <Name>Dog</Name> </Data> </Test> </doc>
所以我想做的是返回所有< Name> < Data>内的文本节点,具有以下标准:
> doc // Test / Name应包含“Pre”文本
> doc //测试/类型应该是“已知”
我需要的是一个这样的查询,但到目前为止我无法管理它
/doc//Test[Name contains(.,'Pre') and Type='Known']/data//Name
任何帮助和提示将不胜感激.
尝试这个:
/doc/Test[contains(Name,"Pre") and Type="Known"]/Data/Name
这是一个在Javascript中实现的工作示例,以利用StackOverflow’s Runnable Code Snippets
function fu(path){ var output = ""; var results = document.evaluate(path,document,null,XPathResult.ANY_TYPE,null); while(nextResult = results.iterateNext()){ output += nextResult.outerHTML + "\n"; } return output; } document.body.innerText = fu('//doc/Test[contains(Name,"Pre") and Type="Known"]/Data/Name');
<doc> <Test> <Name>1 Pre Histoy</Name> <Type>Known</Type> <Data> <Name>Dinasor</Name> <Name>Fish</Name> </Data> </Test> <Test> <Name>1 Post Histoy</Name> <Type>Known</Type> <Data> <Name>Human</Name> <Name>Dog</Name> </Data> </Test> <Test> <Name>1 Post Histoy</Name> <Type>UNKNOWN</Type> <Data> <Name>Human</Name> <Name>Dog</Name> </Data> </Test> </doc>