1

示例架构:

<xs:complexType name="ClassTest">
    <xs:element name="Name" type="xs:string" />
 <xs:element name="Class" type="xs:string" />
 <xs:any namespace="##other" processContents="lax"maxOccurs="Unbound" />

示例 XML:

<ClassTestxmlns="http://schooltest.com">
 <Name>AAA</Name>
 <Class>3</Class>
 <ns:maths>33</ns:maths>
 <ps:english>44<ps:english>
</ClassTest>

如何将具有不同命名空间的元素数学和英语引用到目标命名空间?

谢谢。

4

2 回答 2

2

As your question is tagged as XSLT 2.0, you could also consider to use a wildcard e.g. *:maths and *:english, that selects elements with local name maths respectively english in any namespace.

于 2012-07-28T09:55:05.677 回答
0

如何将具有不同名称空间的元素数学和英语引用到目标名称空间。

因为事先对此类元素的名称空间和名称一无所知,所以只有在不使用任何特定名称或名称空间的情况下选择它们才是安全的

/x:ClassTest/*[not(self::x:Name or self::x:Class)]

其中前缀"x:"必须绑定到命名空间"http://schooltest.com"

此表达式选择作为顶部元素的子元素x:ClassTest且不是元素之一的任何元素x:Nameor x:Class。当应用于提供的 XML 文档时,它会同时选择ns:mathsps:english元素。

于 2012-07-28T02:04:59.743 回答