【发布时间】:2019-07-23 15:18:38
【问题描述】:
在 xsl 文件中,我为 Prov 元素声明了一个模板。 xml 源还包含一个 Doc 元素,但没有此元素的模板。
为什么 xsl transofmation 会从 Doc 元素中写入一些内部文本?
嗨,这是 xml 输入
<Root>
<Doc attr1="1" attr2="2" attr3="3">
<node1 attr1="1" />
<node2 attr1="2" />
<node3 attr1="3" />
<node4>1900-01-01T00:00:00Z</node4>
<node5>1900-01-01T00:00:00Z</node5>
<node6>
<node7>
<node8>xxx</node8>
<node9>yyyy</node9>
<node10>zzz</node10>
</node7>
</node6>
<node11>xxx</node11>
<node12>yyy</node12>
</Doc>
<Prov attr1="1" attr2="2" attr3="3" />
</Root>
我需要这个输出:
<Prov attr1="1" attr2="2" />
这是 xsl:
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<xsl:output method="xml" encoding="ISO-8859-1" indent="yes" />
<xsl:template match="Prov" >
<xsl:element name="Prov">
<xsl:copy-of select="@attr1" />
<xsl:copy-of select="@attr2" />
</xsl:element>
</xsl:template>
</xsl:stylesheet>
这是实际输出:
<?xml version="1.0" encoding="ISO-8859-1"?>
1900-01-01T00:00:00Z
1900-01-01T00:00:00Z
xxx
yyyy
zzz
xxx
yyy
<Prov attr1="1" attr2="2"/>
【问题讨论】: