我有大量的文件中包含以下a.html的結構:XSLT拆分1個HTML成n HTML
<html>
<body>
<div class="a">aaa
<div class="b">bbb</div>
<div class="c">ccc1
<div class="d">ddd11
<div class="e">eee11</div>
<div class="f">fff11
<div class="g">ggg111</div>
<div class="g">ggg112</div>
<div class="g">ggg113</div>
<div class="g">ggg114</div>
<div class="g">ggg115</div>
<div class="g">ggg116</div>
</div>
</div>
</div>
<div class="c">ccc2
<div class="d">ddd21
<div class="e">eee21</div>
<div class="f">fff21
<div class="g">ggg211</div>
<div class="g">ggg212</div>
<div class="g">ggg213</div>
<div class="g">ggg214</div>
</div>
</div>
</div>
</div>
</body>
</html>
的DIV類=「c」的數目是一個已知的單位的整數,在這種情況下,它等於2.
我想生成文件a_1.html和a_2.html,其中每個文件分別包含div class =「c」的第一次和第二次出現。
在本例中,我想生成a_1.html和a_2.html如下:
a_1.html
<html>
<body>
<div class="a">aaa
<div class="b">bbb</div>
<div class="c">ccc1
<div class="d">ddd11
<div class="e">eee11</div>
<div class="f">fff11
<div class="g">ggg111</div>
<div class="g">ggg112</div>
<div class="g">ggg113</div>
<div class="g">ggg114</div>
<div class="g">ggg115</div>
<div class="g">ggg116</div>
</div>
</div>
</div>
</div>
</body>
</html>
a_2.html
<html>
<body>
<div class="a">aaa
<div class="b">bbb</div>
<div class="c">ccc2
<div class="d">ddd21
<div class="e">eee21</div>
<div class="f">fff21
<div class="g">ggg211</div>
<div class="g">ggg212</div>
<div class="g">ggg213</div>
<div class="g">ggg214</div>
</div>
</div>
</div>
</div>
</body>
</html>
我有一個shell腳本如下所示:
#!/bin/bash
for i in {1..2}
do
xsltproc --param occurrence ${i} a.xslt a.html > a_${i}.html
done
我a.xslt然而並不只提取第i個(第一或第二在這種情況下)的div類=「C」的發生。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:param name="occurrence"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="div[@class='a']">
<xsl:copy>
<xsl:apply-templates select="div[@class='a']" />
<xsl:apply-templates select="@* | div[@class='b'] | text()" />
<xsl:apply-templates select="div[@class='c']" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
我怎麼能修改它,以獲得正確的結果呢?
預先感謝您對您有所幫助。
爲什麼這個標記爲'xquery'如果你只對XSLT感興趣嗎? –
-1的標籤隨之而來的誤用(我已經去掉一個[標籤:XQuery的]在幾個小時前,並留下了通知)。不要用錯了標籤,應用了錯誤的標籤警報(和苦惱)人沒有在你的問題的興趣。 –
哎呀,對不起,這個網站是新手。我不知道頂欄上的通知櫃檯。現在我可以看到它。 – Yalmar