我有一些看起来像这样的XML:
<contacts>
<person>
<name>Bob</name>
<phoneNumber>1234</phoneNumber>
<mobileNumber>5678</mobileNumber>
<address>Address 1</address>
</person>
<person>
<name>Sue</name>
<phoneNumber>4321</phoneNumber>
<address>Address 2</address>
</person>
</contacts>
一些Xpath查询<person>
的所有子节点:
//name | //phoneNumber | //mobileNumber | //address
结果如下:
Bob
1234
5678
Address 1
Sue
4321
Address 2
我希望Xpath查询返回一些东西(一个字符串?),以便我可以识别哪个<person>
缺少一个子节点(在这种情况下,第二个人没有<mobileNumber>
。
我想要的输出看起来像这样:
Bob
1234
5678
Address 1
Sue
4321
null
Address 2
如果您需要更多详细信息,请与我们联系!
更新
表达式必须对Xpath 1.0有效,因为我使用的是javascript&#39; s document.evaluate
。
更新
我对这个表达方式有一些看法:
concat(substring(/contacts/person/mobileNumber, 1 div boolean(/contacts/person/mobileNumber)),substring('null', 1 div not(/contacts/person/mobileNumber)))
但它现在只评估第一个<person>
并且不返回第二个。有什么建议吗?
答案 0 :(得分:0)
xpath查询无法创建节点; xslt用于创建/转换xml。我建议你用xpath选择所有人节点,然后使用javascript迭代人的子节点。在迭代循环中,您可以获取每个节点的文本,同时测试缺少的mobileNumber节点是否做出相应的反应。