我有以下 XML:
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfAgence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.artos.co.il/">
<Agence>
<CodeAval>20008</CodeAval>
<CodeSource>ArtPO</CodeSource>
<LogicielSource>NTLIS</LogicielSource>
</Agence>
</ArrayOfAgence>
我想获取 CodeAval 值,所以我尝试了:
ArrayOfAgence/Agence/CodeAval
显然它不起作用,因为这个 XML 有一个命名空间,那么,我需要如何处理这个?
谢谢,
最佳答案
您在评论中提到您在 XSLT 中使用此 XPath。在这种情况下,您需要为输入文档默认命名空间 http://www.artos.co.il/
添加带有前缀的命名空间定义。然后在您的 XPath 表达式中使用此前缀。
命名空间定义示例(它不需要在 stylesheet
元素中)
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:artos="http://www.artos.co.il/">
XPath 表达式中的前缀用法示例
<xsl:value-of select="artos:ArrayOfAgence/artos:Agence/artos:CodeAval"/>
请注意每个元素名称前面添加的前缀。
关于xml - 带有命名空间的 XPath 和 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4973553/