如何使用xml动态制作隐藏字段

时间:2014-06-27 12:18:15

标签: xml xslt

我有一个XML,基于我想要动态创建输入隐藏文件。假设我有xml作为输出

<?xml version="1.0"?>
<MB>
    <RQ>
        <fldDeviceId><![CDATA[Iyh4KnNEU6GDcl4qCQMBzil2wOI=]]></fldDeviceId>
        <uid><![CDATA[fdsfs]]></uid>
        <Account><![CDATA[fsdfds]]></Account>
        <OperatorType><![CDATA[M]]></OperatorType>
        <Mobile><![CDATA[9029938117]]></Mobile>
        <User-Agent><![CDATA[WindowsPhone]]></User-Agent>
        <sessionKey><![CDATA[83727d34-bfef-45ca-955b-4695d035cd98]]></sessionKey>
        <Account_txt><![CDATA[fsafsa- Chandivali, Mumbai]]></Account_txt>
        <Amount><![CDATA[10]]></Amount>
        <requestType><![CDATA[ICPMR]]></requestType>
        <OperationId><![CDATA[dfs]]></OperationId>
        <Operator_txt><![CDATA[AIRCEL]]></Operator_txt>
        <fldLangId><![CDATA[en-US]]></fldLangId>
        <Operator><![CDATA[ARC]]></Operator>
        <TransSeq><![CDATA[03]]></TransSeq>
    </RQ>
    <RS>
        <CardNo>#5435345</CardNo>
        <AuthChar1>B</AuthChar1>
        <AuthChar2>H</AuthChar2>
        <AuthChar3>O</AuthChar3>
    </RS>
</MB>

在那里可能有数千个标签,我想要的是输入隐藏文件,如下面在xslt转换中给出的那样。

<input type="hidden" id="{fldDeviceId}" value="fldDeviceId" />
<input type="hidden" id="{uid}" value="uid" />
等等......我不想写几千行。怎么做只是帮助我。

1 个答案:

答案 0 :(得分:0)

目前尚不清楚XML中您想要“隐藏”的记录,但假设它只是 RQ 下的一个,您可以定义一个类似的模板

<xsl:template match="RQ/*">
    <input type="hidden" id="{.}" value="{local-name()}" />
</xsl:template>

试试这个XSLT例如

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
    <xsl:output indent="yes"/>

    <xsl:template match="/">
        <xsl:apply-templates select="RQ/*" />
    </xsl:template>

    <xsl:template match="RQ/*">
        <input type="hidden" id="{.}" value="{local-name()}" />
    </xsl:template>
</xsl:stylesheet>