【问题标题】:Getting the element name and printing it out获取元素名称并打印出来
【发布时间】:2019-07-17 07:50:38
【问题描述】:

我有一个包含元素和元素名称的 XML 文件。

我想将元素名称转换为一个元素,并用输入元素的匹配内容填充这些元素。

关键是我动态地尝试这个。整个做静态我已经有后端的过程是动态的。假设输入是动态的。

输入示例:

<Parameter name="customer">customer</Parameter>
<Parameter name="Date">Date</Parameter>
<Parameter name="Budgetnumber">Budgetnumber</Parameter>
<Parameter name="External">External</Parameter>
<Parameter name="Target">Target</Parameter>
<Parameter name="Worker">Worker</Parameter>
<Parameter name="customer_number">1234567890</Parameter>
<Parameter name="DataPath">Data/Path/</Parameter>
<Parameter name="DUMMY">DUMMY</Parameter>
<Parameter name="FileName">File.Name</Parameter>
<Parameter name="document_number">123123</Parameter>

我的“坏”XSLT 映射:

<parameter>
    <xsl:for-each select="./*/Parameter">
        <xsl:value-of select="local-name(.)"/> : <xsl:value-of select="."/>
    </xsl:for-each> 
</parameter>

我在 XSLT 方面不是最好的,所以我希望有人可以帮助我获得以下示例输出:

<parameter>
   <customer>customer</customer>
   <Date>Date</Date>
   <Budgetnumber>Budgetnumber</Budgetnumber>
   <External>External</External>
   <Target>Target</Target>
   <Worker>Worker</Worker>
   <customer_number>1234567890</customer_number>
   <DataPath>Data/Path/</DataPath>
   <DUMMY>DUMMY</DUMMY>
   <FileName>File.Name</FileName>
   <document_number>123123</document_number>
</parameter>

【问题讨论】:

    标签: xml xslt xslt-1.0 xslt-2.0


    【解决方案1】:

    以下是构建 xslt 的方法。

    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:output method="xml" indent="yes"/>   
    
        <xsl:template match="/">
          <parameter>
            <xsl:for-each select="Parameter">           
                <xsl:element name="{@name}">
                    <xsl:value-of select="text()" />
                </xsl:element>
            </xsl:for-each>
          </parameter>
        </xsl:template>    
    </xsl:stylesheet>
    

    【讨论】:

      【解决方案2】:

      你可以试试:-

      <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:output method="xml" indent="yes"/>   
      
      <xsl:template match="/">
          <Parameter>
      <xsl:apply-templates/>
          </Parameter>
      </xsl:template>
      
      <xsl:template match="*[@name]">
          <xsl:element name="{@name}">
              <xsl:apply-templates/>
          </xsl:element>
      </xsl:template>
      </xsl:stylesheet>
      

      【讨论】:

        猜你喜欢
        • 2021-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-14
        • 1970-01-01
        • 2021-06-20
        相关资源
        最近更新 更多