我有XML文件:XSLT如何检查XML节点是否存在?
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<Data>
<Records>
<Record>
<AddInfo>
<Info>
</Info>
</AddInfo>
</Record>
</Records>
</Data>
和XSL文件:
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="Dane">
<html>
<link rel="stylesheet" type="text/css" href="report.css"></link>
<body>
<h2>Table1</h2>
<table border="1" cellspacing="0">
<tr>
<th>XXX</th>
</tr>
<xsl:for-each select="Records/Record">
<tr>
<td>
<xsl:value-of select="XXX"/>
</td>
</tr>
</xsl:for-each>
</table>
<h2>SecondTable</h2>
<table border="1" cellspacing="0">
<tr>
<th>YYY</th>
<th>ZZZ</th>
</tr>
<xsl:for-each select="Records/Record/AddInfo/Info">
<tr>
<td>
<xsl:value-of select="YYY"/>
</td>
<td>
<xsl:value-of select="ZZZ"/>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
我想让它这样的:如果节点存在,则与“信息”节点显示表,如果没有,显示一些文字。
我一直在试图
<xsl:if test="following-sibling::AddInfo">
</xsl:if>
和
<xsl:if test="AddInfo">
</xsl:if>
但它无法正常工作。
我希望它是这样的:
Table1
---------------------
| | | |
(条件:如果内部的XML将是节点,我想显示第二个表,表1下)
SecondTable
-------------
| | |
我怎样才能做到这一点?
目前还不清楚是什么你在问。一件重要的事情,你没有公布你的预期产出。并且,将所有场景放入您想要处理的输入XML中。 – 2014-12-19 11:18:03
你的问题不清楚。你想在哪里插入这个测试?你只有一个普通表,所以“*如果节点存在,显示带有”Info“节点的表,如果不存在,则显示”SOME TEXT *“几乎没有意义。 – 2014-12-19 11:19:34
所以,你说如果addInfo元素不存在,应该显示一些文本? – Rnet 2014-12-19 11:24:02