2017-11-12 9 views
0

私はXSLTを初めて使用しています。 私はこのようなXML持っている:私はHTMLで以下の形式にXSLTを使用してtranformする必要が<xsl:apply-templates> XSLT1.0変換を使用した<xsl:for-each>での使用

<rowset> 
<row num="l"> 
<empno>7839</empno> 
<ename>KING</ename> 
<country>Australia</country> 
</row> 
<row num="2"> 
<empno>7788</empno> 
<ename>REIJK/ename> 
<country>Japan</country> 
</row> 
</rowset> 

<hl>Names</hl> 
<ul> 
<li>KING</li> 
<li>REIJK/li> 
</ul> 
<hl>Countries</hl> 
<ul> 
<li>Australia</li> 
<li>Japan</li> 
</ul> 

私はcode.I下記取得することができませんでしために、それぞれ使用しているが本当にありがとうございます。

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
version="1.0"> 
<xsl:output method="html"/> 
<xsl:template match="/"> 
<h1>Names</h1> 
<ul> 
<li> 
<xsl:for-each select="/row/ename"> 
<xsl:apply-templates select="rowset/row/ename"/> 
</xsl:for-each> 
</li> 
</ul> 
<h1>Countries</h1> 
<ul> 
<li> 
<xsl:apply-templates select="rowset/row/country"/> 
</li> 
</ul> 
</xsl:template> 
<xsl:template match="/row/ename"> 
<xsl:value-of select="ename"/> 
</xsl:template> 
<xsl:template match="/row/country"> 
<xsl:for-each select="country"> 
<li> 
<xsl:value-of select="country"/> 
</li> 
</xsl:for-each> 
</xsl:template> 
</xsl:stylesheet> 

私が得たコードの出力は以下の通りです:

<h1>Names</h1> 
<ul> 
<li/> 
</ul> 
<h1>Countries</h1> 
<ul> 
<li>AustraliaJapan</li> 
</ul> 

答えて

1

あなたは、あなたがそれを必要とする、あなたのXPathからrowsetを逃すと、あなたがそれを必要としないところ、それを使用しています。

for-eachなしでこれを正常に行うことができます。各名前または国ごとに<li>を繰り返す場合は、<li>はの中にfor-eachまたはtemplateの範囲内にある必要があります。次はあなたのサンプル入力に適用される

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
version="1.0"> 
    <xsl:output method="html"/> 
    <xsl:template match="/"> 
    <h1>Names</h1> 
    <ul> 
     <xsl:apply-templates select="rowset/row/ename"/> 
    </ul> 
    <h1>Countries</h1> 
    <ul> 
     <xsl:apply-templates select="rowset/row/country"/> 
    </ul> 
    </xsl:template> 

    <xsl:template match="ename | country"> 
    <li> 
     <xsl:value-of select ="."/> 
    </li> 
    </xsl:template> 
</xsl:stylesheet> 

結果は(行方不明<では、追加):

<h1>Names</h1> 
<ul> 
    <li>KING</li> 
    <li>REIJK</li> 
</ul> 
<h1>Countries</h1> 
<ul> 
    <li>Australia</li> 
    <li>Japan</li> 
</ul> 
+0

感謝!!出来た – user8720570

関連する問題