将模板内的变量初始化为xml指定的次数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将模板内的变量初始化为xml指定的次数相关的知识,希望对你有一定的参考价值。

我有一个需要基于xml创建记录的要求。我正在使用xslt这样做。我正在使用如下提供的xml和xslt:

<?xml version="1.0" encoding="utf-8"?>
<TestFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="TestFile.xsd">
<AccountEntity AccountNumber = "55904" >
   <TransactionEntity TransactionId = "2337" >
   </TransactionEntity>
   <TransactionEntity TransactionId = "2338" >
   </TransactionEntity>
</AccountEntity>

要处理上述xml,我使用xslt作为:

<?xml version="1.0" encoding="utf-8"?>
<xsl:output method="xml" version="1.0" encoding="utf-8" />
<xsl:template match="/" >
    <xsl:apply-templates select="AccountEntity" />
</xsl:template>
<xsl:template match="AccountEntity">
     <CardNumber>
          <xsl:value-of select="@AccountNumber"/>        
      </CardNumber>
      <xsl:apply-templates select="TransactionEntity" />
    </xsl:template>

    <xsl:template match="TransactionEntity">
      <UniqueId>
        <xsl:value-of select="@TransactionId"/>        
      </UniqueId>
</xsl:template>

根据我的要求,我需要能够创建2条记录,每条记录都具有值:卡号:55904唯一ID:2337卡号:55904唯一ID:2338但是,当我使用上面的xslt解析我的xml时,我无法生成2条记录。谁能建议我一个解决方案,以便每次每当AccountEntity内有一个transactionEntity时,我都可以创建一个accountId。 AccountEntity内部的TransactionEntity的数量不一定每次都是2,它的数量可以从0到n次变化。任何帮助将非常感激。预先感谢!

答案

尝试这种方式,也许:

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

<xsl:template match="/TestFile">
    <root>
        <xsl:for-each select="AccountEntity/TransactionEntity">
            <Record>
                <CardNumber>
                    <xsl:value-of select="../@AccountNumber"/>        
                </CardNumber>
                <UniqueId>
                    <xsl:value-of select="@TransactionId"/>        
                </UniqueId>
            </Record>
        </xsl:for-each>
    </root>
</xsl:template>

</xsl:stylesheet>

以上是关于将模板内的变量初始化为xml指定的次数的主要内容,如果未能解决你的问题,请参考以下文章

C++中,类内的成员变量自动初始化为零吗,而全局变量随意赋值

Python将多个变量初始化为相同的初始值

为什么全局变量一定要初始化?

定义指针变量时,必须将指针变量初始化为NULL(为空),否则,指针变量会由于初始化位置的不确定

如何将@NSManaged 对象类中的变量初始化为 JSON 值?

指针变量初始化为NULL啥意思?