我想進行一個轉換,它可以根據屬性的值嵌套一組兄弟元素(outline-level
)。需要幫助嵌套兄弟
這是輸入XML文件:
<text>
<para style="Heading 1" outline-level="1">Level 1</para>
<para xml:lang="en" style="Directive">Concept: 1</para>
<para xml:lang="en" style="Heading 2" outline-level="2">Level 2</para>
<para xml:lang="en" style="Directive">Concept: 2</para>
<para xml:lang="en" style="Heading 2" outline-level="2">Level 2</para>
<para xml:lang="en" style="Directive">Concept: 3</para>
<para xml:lang="en" style="Heading 3" outline-level="3">Level 3</para>
<para xml:lang="en" style="Directive">Concept: 4</para>
<para xml:lang="en" style="Heading 3" outline-level="3">Level 3</para>
<para xml:lang="en" style="Directive">Concept: 5</para>
<para xml:lang="en" style="Heading 1" outline-level="1">Level 1</para>
<para xml:lang="en" style="Directive">Concept: 6</para>
<para xml:lang="en" style="Heading 2" outline-level="2">Level 2</para>
<para xml:lang="en" style="Directive">Concept: 7</para>
<para xml:lang="en" style="Heading 3" outline-level="3">Level 3</para>
<para xml:lang="en" style="Directive">Concept: 8</para>
</text>
這是我想acheive什麼:
<root>
<para id="Concept: 1">Level 1
<para id="Concept: 2">Level 2</para>
<para id="Concept: 3">Level 2
<para id="Concept: 4">Level 3</para>
<para id="Concept: 5">Level 3</para>
</para>
</para>
<para id="Concept: 6">Level1
<para id="Concept: 7">Level 2
<para id="Concept: 8"/>
</para>
</para>
</root>
嵌套級別必須由@outline-level
值來確定。嵌入的元素越深,數字越深。
任何想法將不勝感激。
您可以使用XSLT 2.0處理器嗎?你有沒有看過類似的問題和答案像http://stackoverflow.com/questions/4547271/xslt-moving-a-grouping-html-elements-into-section-levels? –