2
xslt를 따르는 데 도움을 줄 수 있습니까? 다음 xml에서 data-type = "taxonomy"인 ul 노드에 ul 자식 노드가 포함되어 있지 않은 경우 id = "a12345600"인이 경우 ul 노드의 부모 노드는 출력에서 생략해야합니다.특정 하위 노드가 포함되지 않은 노드의 상위 노드 생략
<div class="css-treeview">
<ul id="a12345dem" data-id="a12345dem" data-type="taxonomy"> ## this node has to be omitted in the output##
<li>
<input type="checkbox" />
<label>Sample Publications</label>
<ul id="dc0d58dc" data-id="dc0d58dc" data-type="taxonomy"> ## here ul node with attribute has data-type="taxonomy" no child ul node##
<li>
<input type="checkbox" />
<label>Word</label>
</li>
</ul>
</li>
</ul>
<ul id="bcba11a9" data-id="bcba11a9" data-type="taxonomy">
<li>
<input type="checkbox" />
<label>AfDB</label>
<ul id="9cae7833" data-id="9cae7833" data-type="taxonomy">
<li>
<input type="checkbox" />
<label>Tunis</label>
<ul id="Content is the King sai ram" data-id="f02a0f2a" data-taxonomy="9cae7833">
<li>
<input type="checkbox" id="item-0" />
<label for="item-0">
<a class="lnkPub" data-pid="f02a0f2a" onclick="doContentLoad(this,'1_Front_Matter/publication.htm', '1', '1')" title="Content is the King sai ram">Content is the King sai ram</a>
</label>
</li>
</ul>
</li>
</ul>
<ul id="Eine ganz normale Projektentwicklung for Demo" data-id="b1acb679" data-taxonomy="bcba11a9">
<li>
<input type="checkbox" id="item-0" />
<label for="item-0">
<a class="lnkPub" data-pid="b1acb679" onclick="doContentLoad(this,'1_Front_Matter/publication.htm', '1', '1')" title="Eine ganz normale Projektentwicklung for Demo">Eine ganz normale Projektentwicklung for Demo</a>
</label>
</li>
</ul>
</li>
</ul>
<ul id="c8149f59" data-id="c8149f59" data-type="taxonomy">
<li>
<input type="checkbox" />
<label>Siemens</label>
<ul id="SCORM SCORM" data-id="79618046" data-taxonomy="bcba11a9">
<li>
<input type="checkbox" id="item-0" />
<label for="item-0">
<a class="lnkPub" data-pid="79618046" onclick="doContentLoad(this,'1_Front_Matter/publication.htm', '1', '1')" title="SCORM SCORM">SCORM SCORM</a>
</label>
</li>
</ul>
</li>
</ul>
XSLT
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<xsl:text disable-output-escaping='yes'><!DOCTYPE html></xsl:text>
<html>
<head>
<title />
<script src="Navigation.js">
</script>
<link rel="stylesheet" href="Navigation.css" />
<link rel="stylesheet" href="treeview.css" />
<style>nav#MainNav a {padding-top:10px !important; display: block}</style>
</head>
<body>
<header class="navHeader">
<nav>
<a href="Taxonomy.htm">Taxonomy</a>
<a href="Title.htm">Title</a>
<a href="Date.htm">Date</a>
</nav>
</header>
<nav id="MainNav">
<div>
<xsl:apply-templates select="@*" />
<xsl:apply-templates select="ul">
</xsl:apply-templates>
</div>
</nav>
</body>
</html>
</xsl:template>
<xsl:template match="*|@*|text()">
<xsl:copy>
<xsl:apply-templates select="*|@*|text()" />
</xsl:copy>
</xsl:template>
<xsl:template match="div">
<xsl:copy>
<xsl:apply-templates select="ul|@*|text()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="div/ul/li">
<xsl:copy>
<xsl:apply-templates select="*|@*|text()">
<xsl:sort select="@data-title"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
##xslt I used to remove the specific node##
<xsl:template match="li[../@data-type='taxonomy']/label[not(following-sibling::ul)]">
</xsl:template>
</xsl:transform>
예상 출력.
<xsl:template match="ul[descendant::ul[@data-type='taxonomy' and not(descendant::ul) ] ]"/>
매치 (그리고 무시) 상향 링크 데이터 속성 유형 값과 동일 "분류"와 하위 UL와 하위 UL하지 가지고
<div class="css-treeview">
<ul id="bcba11a9" data-id="bcba11a9" data-type="taxonomy">
<li>
<input type="checkbox" />
<label>AfDB</label>
<ul id="9cae7833" data-id="9cae7833" data-type="taxonomy">
<li>
<input type="checkbox" />
<label>Tunis</label>
<ul id="Content is the King sai ram" data-id="f02a0f2a" data-taxonomy="9cae7833">
<li>
<input type="checkbox" id="item-0" />
<label for="item-0">
<a class="lnkPub" data-pid="f02a0f2a" onclick="doContentLoad(this,'1_Front_Matter/publication.htm', '1', '1')" title="Content is the King sai ram">Content is the King sai ram</a>
</label>
</li>
</ul>
</li>
</ul>
<ul id="Eine ganz normale Projektentwicklung for Demo" data-id="b1acb679" data-taxonomy="bcba11a9">
<li>
<input type="checkbox" id="item-0" />
<label for="item-0">
<a class="lnkPub" data-pid="b1acb679" onclick="doContentLoad(this,'1_Front_Matter/publication.htm', '1', '1')" title="Eine ganz normale Projektentwicklung for Demo">Eine ganz normale Projektentwicklung for Demo</a>
</label>
</li>
</ul>
</li>
</ul>
<ul id="c8149f59" data-id="c8149f59" data-type="taxonomy">
<li>
<input type="checkbox" />
<label>Siemens</label>
<ul id="SCORM SCORM" data-id="79618046" data-taxonomy="bcba11a9">
<li>
<input type="checkbox" id="item-0" />
<label for="item-0">
<a class="lnkPub" data-pid="79618046" onclick="doContentLoad(this,'1_Front_Matter/publication.htm', '1', '1')" title="SCORM SCORM">SCORM SCORM</a>
</label>
</li>
</ul>
</li>
</ul>
</div>
안녕하세요. 그것은 완벽하게 작동합니다. same.regards에 대해 감사드립니다. – gullamahi