使用xslt 1.0,我需要在输入xml下面转换为输出xml
- 输入xml
$the_cat = 'latest';
$next_post = get_next_post($in_same_term = true, $excluded_terms = '', $taxonomy = $the_cat);
- 输出xml
<Row>
<Column name="NUMBER" sqltype="int">123</Column>
<Column name="DEPT1" sqltype="int">A</Column>
<Column name="CUST_EMPTYPE" sqltype="int">1</Column>
<Column name="CUST_TIJD" sqltype="int">31</Column>
</Row>
输入xml中的列名在设计时是未知的,列可以增长..
任何人都可以告诉我如何实现这一目标吗?
非常感谢,
答案 0 :(得分:0)
是。这很简单。一个小差异是您的DEPT1
来源和目标价值之间的偏差(我真的不知道IHC可能来自哪里)。我在以下XSLT代码中对其进行了协调,该代码仅将Column/@name
个节点设置为具有旧EMPLOYEE
内容内容的新text()
元素:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" />
<xsl:template match="/Row">
<EMPLOYEE xmlns="http:xmlns.oracle.com/Employee">
<xsl:for-each select="Column">
<xsl:element name="{@name}">
<xsl:value-of select="text()" />
</xsl:element>
</xsl:for-each>
</EMPLOYEE>
</xsl:template>
</xsl:stylesheet>
结果是:
<EMPLOYEE xmlns="http:xmlns.oracle.com/Employee">
<NUMBER>123</NUMBER>
<DEPT1>A</DEPT1>
<CUST_EMPTYPE>1</CUST_EMPTYPE>
<CUST_TIJD>31</CUST_TIJD>
</EMPLOYEE>