XSLT - 从参数构建XML

时间:2016-08-08 16:30:10

标签: xml xslt

我试图从参数构建XML,命名为:
p_nodes:包含xml的节点的数据(由逗号分隔的字符串) p_data:它将包含将在节点内部的数据(由逗号分隔的字符串)。

到目前为止,我得到了这个:

 <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:param name="p_nodes"/>
    <xsl:param name="p_data"/>
    <xsl:template match="/">        
        <xsl:for-each select="tokenize($p_nodes,',')">  
            <xsl:variable name="elemName" select="normalize-space(.)"/>
            <xsl:variable name="pos" select="position()"/>
            <xsl:element name="{$elemName}">                            
                        <xsl:value-of select="tokenize($p_data,',')[position()=$pos]"/>             
            </xsl:element>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>

应用参数:

p_nodes:number,address,name,numdoc
p_data:123,校长Av,alberto,456

我得到的输出是:

<?xml version="1.0" encoding="UTF-8"?>
<number>123</number>
<address>Principal Av</address>
<name>alberto</name>
<numdoc>456</numdoc>

此时它的工作正常。

我正在尝试实现的是使用大写字母转换为已识别的父节点,如下所示:

p_nodes:文档,标题,编号,地址,名称,numdoc,/ HEADER,DETAIL,description,/ DETAIL,/ DOCUMENT
p_data:123,Principal Av,alberto,456,示例说明

输出XML

<?xml version="1.0" encoding="UTF-8"?>
<DOCUMENT>
    <HEADER>
        <number>123</number>
        <address>Principal Av</address>
        <name>alberto</name>
        <numdoc>456</numdoc>
    </HEADER>
    <DETAIL>
        <description>example</description>
    </DETAIL>   
</DOCUMENT>

如果我对问题不完全清楚,请告诉我。

先谢谢你们!

-Keva

0 个答案:

没有答案