2011-12-13 68 views
2

我是XSLT的新手我試圖將名稱值對轉換爲其對應的XML。此功能主要用於對標準進行特殊擴展的情況。 我想要轉換的文件如下。 extNames中沒有任何空格。XSLT將名稱值對轉換爲其對應的XML

<?xml version="1.0" encoding="UTF-8"?> 
<extensionItems xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xsi:noNamespaceSchemaLocation="ExtensionItems.xsd"> 
<extensionsItem> 
<extName> callCode</extName> 
<extValue>1</extValue> 
<extType>integer</extType> 
</extensionsItem> 
<extensionsItem> 
<extName>callbackType</extName> 
<extValue>All</extValue> 
<extType>string</extType> 
</extensionsItem> 
<extensionsItem> 
<extName>callbackEmail</extName> 
<extValue>[email protected]</extValue> 
<extType>string</extType> 
</extensionsItem> 
</extensionItems> 

以下幾點:

<ODEventNotificationExtraField> 
<callCode> 1</callCode> 
<callbackType> All </callbackType> 
<callbackEmail> [email protected] </callbackEmail> 
</ODEventNotificationExtraField> 

回答

1

以下樣式表生成所需的結果:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/> 
    <xsl:template match="extensionItems"> 
     <ODEventNotificationExtraField> 
      <xsl:apply-templates/> 
     </ODEventNotificationExtraField> 
    </xsl:template> 
    <xsl:template match="extensionsItem"> 
     <xsl:element name="{extName}"> 
      <xsl:value-of select="extValue"/> 
     </xsl:element> 
    </xsl:template> 
</xsl:stylesheet> 
+0

感謝您的幫助,我還需要在做相反的是幫助轉換XML到名稱 - 值對xml – user1096618 2011-12-14 12:45:08