Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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的简单转换_Xml_Xslt - Fatal编程技术网

将XSLT用于XML到XML的简单转换

将XSLT用于XML到XML的简单转换,xml,xslt,Xml,Xslt,我有这样的XML文档: <?xml version=”1.0”?> <root> <sub> <value>1</value> </sub> <sub> <value>2</value> </sub> <sub> <value>3</value>

我有这样的XML文档:

<?xml version=”1.0”?>
<root>
    <sub>
        <value>1</value>
    </sub>
    <sub>
        <value>2</value>
    </sub>
    <sub>
        <value>3</value>
    </sub>
</root>

1.
2.
3.
我想转换成其他XML:

<?xml version=”1.0”?>
<entries>
    <sub value="1">
    <sub value="2">
    <sub value="3">
</entries>


什么XSLT文档将实现这样的转换?

这是基本的XSLT问题。这些要求是:

  • 从根元素生成条目元素
  • 生成具有@value属性且具有value元素字符串值的子元素
  • 代码如下所示:

    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        version="1.0">
        <xsl:output indent="yes"/>
    
        <xsl:template match="root">
            <entries>
                <xsl:apply-templates/>
            </entries>
        </xsl:template>
    
        <xsl:template match="sub">
            <xsl:copy>
                <xsl:attribute name="value">
                    <xsl:value-of select="string(value)"/>
                </xsl:attribute>
            </xsl:copy>
        </xsl:template>
    </xsl:stylesheet>
    

    正如你自己所说,这很简单——那么你为什么要问?