[英]XSLT assign field value to variable
我是xslt的新手,似乎似乎很容易遇到麻煩。 我想從輸入的xml文件中獲取字段的值,將其分配給變量,然后嘗試輸出該變量。 看起來很簡單,但似乎無法正常工作?
XML輸入文件:
<?xml version="1.0"?>
<AUTHENTICATOR>
<LOGINID>johndoe</LOGINID>
<DATE>06022015</DATE>
<USERTOKEN>
<vLk3pRdlQXX1JcO2s1QzAJfU050>
</USERTOKEN>
<USERINFO>
<field value="John" name="FirstName"/>
<field value="Doe" name="LastName"/>
<field value="johndoe@hotmail.com" name="Email"/>
</USERINFO>
</AUTHENTICATOR>
XSLT轉換文件:
<?xml version="1.0" encoding="UTF‐8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/AUTHENTICATOR">
<USERINFO>
<!--Set Variables-->
<xsl:variable name="UserName" select="field[@name='FirstName']"></xsl:variable>
<!--Output Variables-->
<xsl:text>First Name: </xsl:text>
<xsl:value-of select="$UserName" />
</USERINFO>
</xsl:template>
</xsl:stylesheet>
您應該注意上下文。 當您與Authenticator節點匹配時,您將位於該節點的上下文中。 xpath“字段”不會導致任何節點,因為上下文auf“ Authenticator”中沒有任何節點。 也許改為嘗試USERINFO / field!
(您的XML格式不正確... vLk3pRdlQXX1JcO2s1QzAJfU050標記未關閉)
假設XML格式正確,則以下XSLT應該可以工作...
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/AUTHENTICATOR">
<USERINFO>
<!--Set Variables-->
<xsl:variable name="UserName" select="USERINFO/field[@name='FirstName']/@value"></xsl:variable>
<!--Output Variables-->
<xsl:text>First Name: </xsl:text>
<xsl:value-of select="$UserName" />
</USERINFO>
</xsl:template>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.