不';t在xsl:templates中显示XML标记
我有一个XML和XSLT不';t在xsl:templates中显示XML标记,xml,xslt,Xml,Xslt,我有一个XML和XSLT <xsl:template match="header/options"> <Username> <xsl:value-of select="user" /> </Username> <Password> <xsl:value-of select="pass" /> </Pass
<xsl:template match="header/options">
<Username>
<xsl:value-of select="user" />
</Username>
<Password>
<xsl:value-of select="pass" />
</Password>
</xsl:template>
转换后,它只显示用户名值。它不显示
,
以及xsl:template中的其他xml标记。为什么?
XML
<ObjectNode>
<header>
<options>
<username>username</username>
<password>password</password>
</options>
</header>
<payload>
<application>
<applicants id="12345">
</applicants>
</application>
<contacts>
<person id="12345">
<names>
<id>42342</id>
<title>Mr</title>
<firstName>Jhon</firstName>
<middleNames>Mason</middleNames>
<surName>Smith</surName>
</names>
</person>
</contacts>
</payload>
</ObjectNode>
用户名
密码
42342
先生
约翰
石匠
史密斯
XSLT
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:foo="http://www.foo.org/" xmlns:bar="http://www.bar.org">
<xsl:template match="ObjectNode">
<Search>
<Authentication>
<xsl:apply-templates select="header/options"/>
</Authentication>
<CountryCode><xsl:value-of select="/ObjectNode/header/options/CONTROL_COUNTRY"/></CountryCode>
<Person>
</Person>
</Search>
</xsl:template>
<xsl:template match="header/options">
<Username>
<xsl:value-of select="username" />
</Username>
<Password>
<xsl:value-of select="password" />
</Password>
</xsl:template>
</xsl:stylesheet>
能否显示输入XML,以及演示问题的完整XSLT版本?特别是,您是否将xsl:output
元素与“text”方法一起使用?转换工作正常。看见您实际上是如何调用转换的,您是如何查看输出的?谢谢,我正在使用。我再看一遍,注意XSLT中有一些名称空间声明。您的XML示例也应该包含名称空间吗?