【发布时间】:2012-01-22 01:16:34
【问题描述】:
我需要开发一个应用程序,该应用程序将定期检查 XML 提要中的数据,对其进行处理并采取适当的措施,例如通知用户等,但主要用于生成和查看报告。这个 xml 提要主要检查应用程序的正常运行时间、停机时间。
以下是我正在遵循的步骤:
- 我正在将一个 xml 文件从远程位置下载到我自己的服务器。
- 从属性文件中检查要监视的应用程序。
- 使用 XSLT 将其转换为 html 并邮寄 html 页面。
现在,此 XML 提要还包含不需要监视的应用程序,并使用 java.util.properties 中的属性文件进行检查。可以稍后添加被监控的应用程序。
那么有没有办法将它也包含在 xsl 文件中? (我也可以将参数从 java 传递到 xslt,但参数的数量是可变的。我将应用程序名称分组并使用两个参数传递它,但由于无法使用 xsl:for-each 的迭代器来比较这些值XML 提要文件。)
编辑:
<begin last-update="12/16/2011 06:18:31 am">
<application id="1" name="xyz" last-update="12/16/2011 6:16:03 AM">
<node2 code="normal">
<childnodes></childnodes>
<childnodes></childnodes>
</node2>
</application>
<application id="2" name="abc" last-update="12/14/2011 6:16:03 AM">
... Same as before
</application>
</begin>
这是 xml 提要。我正在遍历这个 xml ..我需要检查应用程序节点中的 name 属性..下面是 xsl 代码
<xsl:for-each select="begin/application">
<!-- Need this to be fetched dynamically using xsl params -->
<xsl:if test="@name='abc' or @name=xyz' >
<tr width="100%" style="border:solid 1px black;">
<td style="text-align:center; vertical-align:center;">DATA</td>
<td style="text-align:center; vertical-align:center;">DATA</td>
<td style="text-align:center; vertical-align:center;">DATA</td>
</tr>
</xsl:if>
当前名称属性是硬编码的..我需要从 java 代码传递的参数列表中使用这些 - 参数字符串是 app1,app2 和节点中的参数设置为
<root>
<application @name="ABC"></application>
<application @name="XYZ"></application>
</root>
问题是我如何迭代参数,因为我还需要 xml 文件的迭代。
【问题讨论】:
标签: java xslt xml-parsing