【发布时间】:2018-03-12 07:40:44
【问题描述】:
我有以下输入文件:
<!-- input.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<input>
<value>
aaa
<value>
bbb
<value>ccc</value>
</value>
</value>
</input>
预期输出:
<!-- output.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<ul>
<li>aaa</li>
<li>bbb</li>
<li>ccc</li>
</ul>
XSLT 文件应该是什么样子?我尝试了以下方法:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/input">
<ul>
<xsl:for-each select="//value">
<li> <xsl:value-of select="."/></li>
</xsl:for-each>
</ul>
</xsl:template>
</xsl:stylesheet>
但第一个结果 (aaa) 还包含来自其子树 (bbb, ccc) 的值。
【问题讨论】:
-
最好说明转换应如何处理与您的示例不同的输入文档。比如有两个兄弟值元素怎么办?
-
你是对的,但这不是一个真实的用例,我只是想了解 XSLT 是如何工作的,所以这只是一个我无法弄清楚的例子。