【发布时间】:2019-10-21 00:44:17
【问题描述】:
是否可以使用 Xquery 来检查一个 xml 文档是否有不同的 URI 分配给不同范围内的相同名称空间前缀?
【问题讨论】:
是否可以使用 Xquery 来检查一个 xml 文档是否有不同的 URI 分配给不同范围内的相同名称空间前缀?
【问题讨论】:
你可以选择(//ns1:*, //@ns1:*)/prefix-from-QName(node-name())来查找我认为使用过的前缀:
在例如运行时
<root xmlns="http://example.com/ns1">
<pf1:foo xmlns:pf1="http://example.com/ns1">
<pf1:bar xmlns:pf1="http://example.com/ns2"/>
<pf3:baz xmlns:pf3="http://example.com/ns1">
<foobar xmlns="" xmlns:pf4="http://example.com/ns1" pf4:att1="whatever"/>
</pf3:baz>
</pf1:foo>
</root>
它返回pf1 pf3 pf4,使用count(distinct-values((//ns1:*, //@ns1:*)/prefix-from-QName(node-name())))检查是否有多个使用。示例:https://xqueryfiddle.liberty-development.net/948Fn5t/1
不确定空前缀,它可能需要一些额外的处理,因为它不包含在上述结果中。
【讨论】: