【发布时间】:2014-02-19 07:40:34
【问题描述】:
我正在使用 XSL 转换遍历不同的 XML 元素。以下是我的示例 xml:
<?xml version="1.0" encoding="UTF-8"?>
<Alerts>
<AlertType>
<AlertTypeOne>
<NewAlert></NewAlert>
</AlertTypeOne>
</AlertType>
<AlertType>
<AlertTypeTwo>
<NewerAlert></NewerAlert>
</AlertTypeTwo>
</AlertType>
<AlertType>
<AlertTypeThree>
<OldAlert></OldAlert>
</AlertTypeThree>
</AlertType>
</Alerts>
以下是我的 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="/">
<html>
<body>
<h1>Alerts</h1>
<table>
<tr>
<td>Credit Monitoring Activity</td>
</tr>
<tr>
<td>Lorem ipsum <br/>
<xsl:for-each select="//Alerts/AlertType">
<!--logic -->
</xsl:for-each></td>
</tr>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
我正在遍历不同的 AlertType 标签。 AlertType 标签可能包含不同的 xml(彼此不相关),基于标签内的第一个元素,我想调用适当的 xsl 文件并将 xml 内容传递给它(就像 java 中的方法调用一样)。
目前,我无法访问 AlertType 标记的直接子项,更不用说匹配它了。任何人都可以帮助如何访问子节点吗?此外,根据匹配结果(用于每个),我想调用不同的 xslts。知道怎么做吗?
编辑 由于 xml 包含不同警报的信息,我想显示一个包含多个表(每个警报一个表)的 HTML 文件。 根据标签中数据的不同,列的名称和值可能会有所不同。
HTML 应该是这样的:
信用监控活动
AlertTypeOne
姓名 地址 市州
数据数据数据数据
AlertTypeTwo
资格指定角色
数据数据数据
AlertTypeThree
贷记借记
数据数据
【问题讨论】:
-
这个问题太模糊了。请展示一个代表性 XML 输入示例(一个没有
<!--Some info-->,但包含您要检索的实际元素)和您的预期 XML 输出。 -
已编辑。基本上,我有不同的 xsl 文件来处理
、 和 xml,我需要根据循环期间遇到的标签名称调用适当的 xsl 文件。我想将所有 xml 转换成一个 HTML。 -
那么,为什么不显示那些不同的 XSLT 文件呢?
-
我需要将所有数据合并到一个文件中。
-
"我想显示一个包含多个表格的 HTML 文件(每个警报一个表格)。" 请向我们展示一个包含多个(至少两个)警报的 XML 文档, 包括它们的内容。然后解释如何根据警报内容构建每个表 - 最好通过显示您希望获得的结果 HTML。
标签: xml xslt xslt-1.0 transformation