XSLT将名称值对转换为其对应的XML

时间:2011-12-13 21:37:35

标签: xslt

我是XSLT的新手我试图将名称值对转换为相应的XML。此功能主要用于标准的特殊扩展。 我想要转换的文件如下。 extNames中的任何一个都没有预期的空格。

<?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>me@mine.org</extValue>
<extType>string</extType>
</extensionsItem>
</extensionItems>

以下内容:

<ODEventNotificationExtraField>
<callCode> 1</callCode>
<callbackType> All </callbackType>
<callbackEmail> me@mine.org </callbackEmail>
</ODEventNotificationExtraField>

1 个答案:

答案 0 :(得分: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>