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代码适用于这两个版本?请赐教!
您可以按其本地名称匹配元素,例如
<?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)