簡體   English   中英

XSLT將字段值分配給變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM