Игнорирование префикса пространства имен XML при выборе элементов - XSLT
XML версия 1
<inboundData xmlns="urn:college:names:ws:docexchange">
<Root>
<College Version="5.0" xmlns:cidx="urn:abc:names:specification:col:schema:all:5:0" xmlns="urn:abc:names:specification:col:schema:all:5:0">
<Header>
<Address>
<AddressLine1>4600 Big Tree Way</AddressLine1>
</Address>
</Header>
</College>
</Root>
</inboundData>
XML версия 2
<inboundData xmlns="urn:college:names:ws:docexchange">
<Root>
<ns1:College Version="5.0" xmlns:ns1="urn:abc:names:specification:col:schema:all:5:0">
<ns1:Header>
<ns1:Address>
<ns1:AddressLine1>4600 Big Tree Way</ns1:AddressLine1>
</ns1:Address>
</ns1:Header>
</ns1:College>
</Root>
</inboundData>
Код XSL
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:a="urn:abc:names:specification:col:schema:all:5:0" xmlns:b="urn:college:names:ws:docexchange">
<xsl:template match="/">
<xsl:copy-of select="b:inboundData/b:College/*"/>
</xsl:template>
</xsl:stylesheet>
Исправление в коде XSL. (Понял ошибку после прочтения ответа Хансена)
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:a="urn:abc:names:specification:col:schema:all:5:0" xmlns:b="urn:college:names:ws:docexchange">
<xsl:template match="/">
<xsl:copy-of select="b:inboundData/b:Root/*"/>
</xsl:template>
</xsl:stylesheet>
Код XSL хорошо работает для XML версии 1. Из-за дополнительного пространства имен «ns1» он не работает для типа 2. Как я могу заставить код xsl работать для обеих этих версий? Пожалуйста, просветите меня!