我试图从参数构建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