XSLT丰富了XML中的文本
我有一个XML请求:XSLT丰富了XML中的文本,xml,xslt,xslt-1.0,xslt-2.0,Xml,Xslt,Xslt 1.0,Xslt 2.0,我有一个XML请求: <soapenv:Body> <compte> <login>Lilian00</login> **<password>?</password>** <name>Lilian</name> </v1:compte> </soapenv:Body> 丽莲00 **?** 丽
<soapenv:Body>
<compte>
<login>Lilian00</login>
**<password>?</password>**
<name>Lilian</name>
</v1:compte>
</soapenv:Body>
丽莲00
**?**
丽莲
我想使用XSLT来丰富?
字段,以获得以下结果:
<soapenv:Body>
<compte>
<login>Lilian00</login>
**<password>admin</password>**
<name>Lilian</name>
</v1:compte>
</soapenv:Body>
丽莲00
**管理员**
丽莲
我试过这个,但不起作用:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
>
<xsl:param name="password" />
<xsl:output encoding="UTF-8" indent="yes" />
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*" />
</xsl:copy>
</xsl:template>
<xsl:template match="/soapenv:Body/compte/password">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
<xsl:value-of select="$password" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
谁能帮帮我,我怎么做 适用于我,只需稍作调整:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
>
<xsl:output encoding="UTF-8" indent="yes" />
<xsl:variable name="password" select="'foo'"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*" />
</xsl:copy>
</xsl:template>
<xsl:template match="/soapenv:Body/compte/password">
<xsl:copy>
<xsl:apply-templates select="@* | ./*"/>
<xsl:value-of select="$password" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Fiddle:如果您只需从模板匹配中删除第一个斜杠,是否有效?例如,do
Thnx@TimC不,它不工作,XSLT文件正确吗?因为我从未使用过XSLTY,所以您的XML格式不正确:
和
不匹配。如果compte
位于命名空间中,则第二个模板将与之不匹配。也没有将前缀绑定到名称空间URI的名称空间声明。我删除了名称空间,但它不起作用,我想我的XSLT有问题。您可以编辑您的问题以显示XML的完整版本吗,该版本包含所有名称空间声明?(即xmlns:soap=“…”和xmlns:v1=“…”)。谢谢