使用xpath提取名称空间声明的值

时间:2013-08-10 13:25:17

标签: xml xslt xpath

我有一个带声明的XML文档

<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.008.001.04" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.008.001.04 file://BE-FILE01/tverschu$/SR%20(Standards%20Release)/SR2013/ISO/Payments%20Initiation/SR2013_MX_Schemas_PaymentsInitiation/pain.008.001.04.xsd">

实际上我想在XSLT trasnfromation中使用XPath(1.0)来获取xmlns命名空间属性或xsi:schemaLocation attrubite的内容,这样我就可以删除/重新创建名称一个xsd文件。

使用:

/*/namespace::*

给了我

  

HTTP&GT; // wwww.w3.org/XML/1998/Namespace

但无论我尝试什么,我似乎都无法获得这些属性的实际内容,任何想法?

1 个答案:

答案 0 :(得分:0)

您应该可以使用@schemaLocation来查询/*/@xsi:schemaLocation

xmlns“attributes”是名称空间声明,而不是属性。你不能这样查询它们。 /*/namespace::*对我来说完全没问题。 /*是否在查询<Document/>代码? xml命名空间总是可以设置,您检查所有返回的值吗?