使用更改命名空间前缀

本文关键字:命名空间 前缀 | 更新日期: 2024-11-07 07:18:22

假设我使用相同的架构从两个不同的供应商那里获得了两个不同的 xml 文档。 他们各自选择了不同的命名空间前缀。 如何在 C# 和 SQL Server 中使用 XPATH 以通用方式查询"Foo"和"Bar"的值? 为简洁起见,XML 大致如下所示:

文档 1

<a:Item xmlns:a="http://kakridge.com/schema">Foo</a:Item>

文档 2

<b:Item xmlns:b="http://kakridge.com/schema">Bar</a:Item>

使用更改命名空间前缀

XPath 不关心源文档中出现什么前缀,它只关心命名空间 URI。如果前缀 z 绑定到命名空间 http://kakridge.com/schema,则//z:Item 将在这两个文档中找到 Item 元素。

我猜你正在寻找Item的值,这是Foobar?如果元素的本地名称相同,通配符应该可以帮助您:

//*:Item/text()