某個ID裹節點,我想變換下面的HTML代碼與在同一父
<div id="pg-1">
<div id="pgc-1">
<div class="test">Hello World!</div>
</div>
<div id="pgc-2">
<div class="test">Hello World!</div>
</div>
</div>
<div id="pg-2">
<div id="pgc-3">
<div class="test">Hello World!</div>
</div>
<div id="pgc-4">
<div class="test">Hello World!</div>
</div>
</div>
這個
<section id="pg-1">
<div class="container">
<div class="row">
<div id="pgc-1">
<div class="test">Hello World!</div>
</div>
<div id="pgc-2">
<div class="test">Hello World!</div>
</div>
</div>
</div>
</section>
<section id="pg-2">
<div class="container">
<div class="row">
<div id="pgc-3">
<div class="test">Hello World!</div>
</div>
<div id="pgc-4">
<div class="test">Hello World!</div>
</div>
</div>
</div>
</section>
我能得到這個XSLT文檔工作:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="//div[starts-with(@id, 'pgc-')]">
<div class="container">
<div class="row">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</div>
</div>
</xsl:template>
<xsl:template match="//div[starts-with(@id, 'pg-')]">
<section>
<xsl:apply-templates select="@*|node()" />
</section>
</xsl:template>
</xsl:stylesheet>
不幸的是,它不會產生我想要的東西:特別是,它確實包裹了編號爲的元素容器內,但它不會將它們分組爲只有一個父級。這是什麼是正確的輸出,現在(每節):
<section id="pg-1">
<div class="container">
<div class="row">
<div id="pgc-1">
<div class="test">Hello World!</div>
</div>
</div>
</div>
<div class="container">
<div class="row">
<div id="pgc-2">
<div class="test">Hello World!</div>
</div>
</div>
</div>
</section>
由於我願做一個總結:
- 改變所有元素的標籤名與
id
屬性開始pg-
到section
(我應該複製的所有屬性的新元素) - 包裝所有的子元素,其分度
id
屬性與pgc-
開始在同一父節點下.container > .row
(我的所有屬性複製到新的ELEM ENT)
您顯示的輸出格式不正確(「節」沒有結束標記)。 –
你是對的,但它只是一個錯字 – Stefano