Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要XSLT将一种形式的XML转换为另一种形式_Xml_Xslt - Fatal编程技术网

需要XSLT将一种形式的XML转换为另一种形式

需要XSLT将一种形式的XML转换为另一种形式,xml,xslt,Xml,Xslt,我是XSLT新手。我需要XSLT将一种形式的XML转换为另一种形式。以下是输入和输出 输入 <AssetDataCollection> <!-- Asset Data will be repeated for each service tag --> <AssetData> <REF_ID_LIST> <REF_ID NAME="MANUFACTUREDATE" VALUE="05/03/2013" /> <R

我是XSLT新手。我需要XSLT将一种形式的XML转换为另一种形式。以下是输入和输出

输入

<AssetDataCollection>
<!-- Asset Data will be repeated for each service tag -->
<AssetData>
  <REF_ID_LIST>
    <REF_ID NAME="MANUFACTUREDATE" VALUE="05/03/2013" />
    <REF_ID NAME="REGION" VALUE="DAO" />
    <REF_ID NAME="EMBMAC1" VALUE="D4BED9403E24" />
    <REF_ID NAME="EMBMAC2" VALUE="D4BED9403E24" />
    <REF_ID NAME="EMBMAC3" VALUE="D4BED9403E24" />
    <REF_ID NAME="AC1" VALUE="D4BED9403E24" />
    <REF_ID NAME="MAC2" VALUE="D4BED9403E24" />
    <REF_ID NAME="MAC3" VALUE="D4BED9403E24" />
  </REF_ID_LIST>
</AssetData>
</AssetDataCollection>
<AssetDataCollection>
<!-- Asset Data will be repeated for each service tag -->
<AssetData>
<MANUFACTUREDATE>05/03/2013</MANUFACTUREDATE>
<REGION>DAO</REGION>
<EMBMAC1>D4BED9403E24</EMBMAC1>
<EMBMAC2>D4BED9403E24</EMBMAC2>
<EMBMAC3>D4BED9403E24</EMBMAC3>
<AC1>D4BED9403E24</AC1>
<MAC2>D4BED9403E24</MAC2>
<MAC3>D4BED9403E24</MAC3>
</AssetData>
</AssetDataCollection>

,我没有得到正确的输出。

您需要使用三个模板,第一个是身份转换

<xsl:template match="@* | node()">
  <xsl:copy>
    <xsl:apply-templates select="@* | node()"/>
  </xsl:copy>
</xsl:template>
第三个通过执行以下操作来转换
REF\u ID
元素

<xsl:template match="REF_ID">
  <xsl:element name="{@NAME}">
    <xsl:value-of select="@VALUE"/>
  </xsl:element>
</xsl:template>

您需要使用三个模板,第一个是身份转换

<xsl:template match="@* | node()">
  <xsl:copy>
    <xsl:apply-templates select="@* | node()"/>
  </xsl:copy>
</xsl:template>
第三个通过执行以下操作来转换
REF\u ID
元素

<xsl:template match="REF_ID">
  <xsl:element name="{@NAME}">
    <xsl:value-of select="@VALUE"/>
  </xsl:element>
</xsl:template>


你能告诉我们你到目前为止试过什么吗?不能问你试过什么所以你做了什么。从一种形式到另一种方式?你能告诉我们你到目前为止试过什么吗?不能问你试过什么所以你做了什么。从一种形式到另一种方式?完全格式化的答案
完全格式化的答案