示例架构:
<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>
如何将具有不同命名空间的数学和英语元素引用到目标命名空间?
感谢。
答案 0 :(得分:2)
由于您的问题被标记为XSLT 2.0,您还可以考虑使用通配符,例如*:maths
和*:english
,分别在任何命名空间中选择本地名称为maths
{@ 1}}的元素。
答案 1 :(得分:0)
如何引用具有不同的数学和英语元素 命名空间到目标命名空间。
由于事先并未知道此类元素的命名空间和名称,因此只选择它们而不使用任何特定名称或命名空间:
/x:ClassTest/*[not(self::x:Name or self::x:Class)]
前缀"x:"
必须绑定到命名空间"http://schooltest.com"
。
此表达式选择作为顶部元素x:ClassTest
的子元素的任何元素,而不是元素x:Name
或x:Class
之一。应用于提供的XML文档时,它会同时选择ns:maths
和ps:english
元素。