내가 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 노드가 될 경우, 나는 두 번째 테이블을 표시하려면, 표에서)
SecondTable
-------------
| | |
내가 이것을 어떻게 할 수 있습니까?
작동 확인하려면 무엇을 묻고있어. 한 가지 중요한 점은 예상 출력을 게시하지 않은 것입니다. 그리고 처리 할 입력 XML에 모든 시나리오를 넣으십시오. –
질문이 명확하지 않습니다. 이 테스트를 정확히 어디에 삽입 하시겠습니까? 하나의 일반 테이블 만 있으므로 "* 노드가 있으면"정보 "노드가있는 테이블을 표시하고, 그렇지 않으면 SOME TEXT *를 표시하면"거의 이해가되지 않습니다. –
그래서 addInfo 요소가 없으면 일부 텍스트가 표시되어야한다고 말하고 있습니까? – Rnet