3
我有,我想分析創建HTML下面的XML文件。我的問題是,我無法解析它,因爲我想。XSLT - 如何閱讀所有子節點有序,具有相同和不同的名稱標籤
我想要做的是HTML輸出我<items>
。所以,我希望有一個<paragraph>
成爲<div>
,<image>
是一個<img>
及其子節點是它的屬性「SRC」和「ALT」。
<itemlist>
<item>
<paragraph>pA</paragraph>
<image>
<url>http://www.com/image.jpg</url>
<title>default image</title>
</image>
<paragraph>pB</paragraph>
<paragraph>pC</paragraph>
<link target='#'>linkA</link>
<paragraph>pD</paragraph>
<link target='#' >linkB</link>
<image>
<url>http://www.com/image2.jpg</url>
<title>default image 2</title>
</image>
</item>
<item>
<paragraph>pB</paragraph>
<paragraph>pC</paragraph>
<image>
<url>http://www.com/image2.jpg</url>
<title>default image 2</title>
</image>
<link target='#'>linkA</link>
<paragraph>pD</paragraph>
<link target='#'>linkB</link>
</item>
</itemlist>
如果我上<item>
foreach循環和通過應用模板,如匹配=「段」值寫入隨後匹配=「圖像」,那麼所有<paragraph>
將<image>
,這將之前寫入不會導致正確的輸出。
下面是我期待的輸出。任何人有一個想法如何做到這一點?
<div id="item">
<div>pA</div>
<img src='http://www.com/image.jpg' title='default image' />
<div>pB</div>
<div>pC</div>
<a href='#'>linkA</a>
<div>pD</div>
<img src='http://www.com/image2.jpg' title='default image 2' />
</div>
<div id="item">
<div>pB</div>
<div>pC</div>
<img src='http://www.com/image2.jpg' title='default image 2' />
<a href='#'>linkA</a>
<div>pD</div>
<a href='#'>linkB</a>
</div>
-----編輯---- 目前,我有這樣的事情
<xsl:for-each select="itemlist/item">
<xsl:apply-templates select="paragraph"/>
<xsl:apply-templates select="link"/>
<xsl:template match="paragraph">
<xsl:value-of select="." />
</xsl:template>
<xsl:template match="link">
<xsl:value-of select="." />
</xsl:template>
</xsl:for-each>
雖然你的答案確實輸出我顯示的結果。它對我來說似乎並不正確。我已經加入我與 – Daniel
@Daniel此解決方案使用的代碼,誤差必須在你身邊。請參閱http://www.xmlplayground.com/SaB3U9。 – Tomalak
Stefanos,一方面注意:'match'表達式不需要完整的XPath表達式。 '等就足夠了。 –
Tomalak