选择元素时忽略XML名称空间前缀 - XSLT

ami*_*z27 1 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>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

XSL代码适用于XML版本1.由于额外的命名空间"ns1",它不适用于类型2.如何使xsl代码适用于这两个版本?请赐教!

Tho*_*s W 6

您可以按其本地名称匹配元素,例如

<?xml version="1.0" encoding="UTF-8"?>
<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/*[local-name()='College']/*"/>
  </xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)