Sae*_*ani 11 xml xpath contains
我在使用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>
Run Code Online (Sandbox Code Playgroud)
所以我想做的是返回节点<Name>内的所有文本<Data>,并遵循以下标准:
doc//Test/Name 应包含"Pre"文本
doc//Test/Type 应该是"知名的"
我需要的是这样的查询,但到目前为止我无法管理它
/doc//Test[Name contains(.,'Pre') and Type='Known']/data//Name
Run Code Online (Sandbox Code Playgroud)
任何帮助和提示将不胜感激.
Bol*_*ock 17
试试这个:
/doc/Test[contains(Name, "Pre") and Type="Known"]/Data/Name
Run Code Online (Sandbox Code Playgroud)
这是一个在Javascript中实现的工作示例,以利用StackOverflow的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');Run Code Online (Sandbox Code Playgroud)
<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>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19941 次 |
| 最近记录: |