0
我是XSLT和XML的新手。XSLT结合了两个模板过滤器信息
我目前正在过滤来自XML文档的一些信息,并且我想在同一个文档上再应用一个模板。
我不知道如何结合这两个模板。
如果有人能指导我。
这是我的XML文档:
<?xml version="1.0" encoding="UTF-8"?>
<People>
<Person>
<num>0000022222</num>
<first-name>Mike</first-name>
<last-name>Jhonny</last-name>
<licenses>
<license>
<number>1762539</number>
</license>
<license>
<number>1762538</number>
</license>
</licenses>
<not-required>
<one>12345</one>
<two>54321</two>
</not-required>
</Person>
<Person>
<num>0000011111</num>
<first-name>John</first-name>
<last-name>Jhonny</last-name>
<licenses>
<license>
<number>1762539</number>
</license>
<license>
<number>1762538</number>
</license>
</licenses>
<not-required>
<one>12345</one>
<two>54321</two>
</not-required>
</Person>
</People>
我要过滤的<not-required></not-required>
标签,我能够做到这一点。
我也想过滤<num>
标签的前导零。
我知道我可以通过应用此模板来做到这一点。
<xsl:template match="num">
<xsl:value-of select="number(.)"/>
</xsl:template>
,我使用目前的XSLT如下:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="not-required"/>
</xsl:stylesheet>
这是我如何得到输出:
<?xml version="1.0" encoding="UTF-8"?>
<People>
<Person>
<number>0000022222</number>
<first-name>Mike</first-name>
<last-name>Jhonny</last-name>
<licenses>
<license>
<number>1762539</number>
</license>
<license>
<number>1762538</number>
</license>
</licenses>
</Person>
<Person>
<number>0000011111</number>
<first-name>John</first-name>
<last-name>Jhonny</last-name>
<licenses>
<license>
<number>1762539</number>
</license>
<license>
<number>1762538</number>
</license>
</licenses>
</Person>
</People>
这是我期待
<?xml version="1.0" encoding="UTF-8"?>
<People>
<Person>
<number>22222</number>
<first-name>Mike</first-name>
<last-name>Jhonny</last-name>
<licenses>
<license>
<number>1762539</number>
</license>
<license>
<number>1762538</number>
</license>
</licenses>
</Person>
<Person>
<number>11111</number>
<first-name>John</first-name>
<last-name>Jhonny</last-name>
<licenses>
<license>
<number>1762539</number>
</license>
<license>
<number>1762538</number>
</license>
</licenses>
</Person>
</People>
有人可以指导我如何co mbine模板来取得前导零。
出于某种原因,当我加入这个以前它是不工作。这很奇怪,所以我问了这个问题。 – Aniks 2014-10-30 16:46:22
您的版本没有xsl:copy。 – 2014-10-30 16:49:47
很好,非常感谢你帮助我。 – Aniks 2014-10-30 18:25:52