我是XSLT新手,所以這可能是非常基本的,但我真的很感激一些輸入。我需要在我的xml中轉換子節點,但同時保持父節點不變。我的XML看起來是這樣的:XSLT:如何複製父節點並轉換子節點
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLTest xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" xmlns:jfxpf="http://www.xfa.com/schema/xml-package" xmlns:xfa="http://www.xfa.com/schema/xfa-data">
<result form="10" version="4" resultid="23146" respondent="ycisxmir" authid="" date="2012-09-12 06:39:44" times="462">
<Q0061 answerid="1">1</Q0061>
<Q0060 answerid="2">2</Q0060>
<QTXT1>1</QTXT1>
</result>
</XMLTest>
我需要保持兩個頂級節點的XMLTest和結果不變,而子節點需要被轉化爲一個更通用的格式是這樣的:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLTest xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" xmlns:jfxpf="http://www.xfa.com/schema/xml-package" xmlns:xfa="http://www.xfa.com/schema/xfa-data">
<result form="10" version="4" resultid="23146" respondent="ycisxmir" authid="" date="2012-09-12 06:39:44" times="462">
<answer>Q0061</answer>
<id>1</id>
<value>1</value>
<answer>Q0060</answer>
<id>2</id>
<value>2</value>
<answer>QTXT1</answer>
<value>1</value>
</result>
</XMLTest>
我XSLT到目前爲止是這樣的:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:template match="result/*">
<answer><xsl:value-of select="local-name()"/></answer>
<id><xsl:value-of select="@answerid"/></id>
<value><xsl:value-of select="@*"/></value>
</xsl:template>
</xsl:stylesheet>
我使用XSL嘗試:複製頂部節點上,但不能讓它不失子節點,或子節點的改造工作。如何保持頂層節點並同時通過我的轉換後的子節點進行強制操作?
不錯嘗試upvoted!只是你缺少身份模板哪些副本休息其他節點..檢查我的答案.. –
我已經更新了答案與評論..請檢查它.. –