0
我在做xml轉換的html。在HTML我有臺這樣的,覆蓋來自新節點的現有節點的文本()節點 - XSLT
<doc>
<ol>
<li>
<p>List<span style="color: rgb(255,0,255);">The scope of this project is to:</span></p>
<ol>
<li>nested list1</li>
<li>nested <span style="color: rgb(255,0,255);">The scope of this project is to:</span> list1</li>
<li>nested list1</li>
<li>nested list1</li>
<li>nested list1</li>
</ol>
</li>
<li>
<p>List<span style="color: rgb(255,0,255);">The scope of this project is to:</span></p>
</li>
<li>
<p>List<span style="color: rgb(255,0,255);">The scope of this project is to:</span></p>
</li>
</ol>
在這裏,我需要的HTML元素的名稱轉換爲某些XML元素的名稱,並應包含<para>
元素的文本內容。
所以我的輸出應該是,
<doc>
<oli>
<listitem><para>List<style type="color: rgb(255,0,255);">The scope of this project is to:</style></para>
<oli>
<listitem><para>nested list1</para></listitem>
<listitem><para>nested <style type="color: rgb(255,0,255);">The scope of this project is to:</style> list1</para></listitem>
<listitem><para>nested list1</para></listitem>
<listitem><para>nested list1</para></listitem>
<listitem><para>nested list1</para></listitem>
</oli>
</listitem>
<listitem><para>
List<style type="color: rgb(255,0,255);">The scope of this project is to:</style>
</para></listitem>
<listitem><para>
List<style type="color: rgb(255,0,255);">The scope of this project is to:</style>
</para></listitem>
</oli>
</doc>
我已經寫了下面的XSL轉換的HTML到XML,
<xsl:template match="ol">
<oli>
<xsl:apply-templates/>
</oli>
</xsl:template>
<xsl:template match="li">
<listitem>
<para>
<xsl:apply-templates/>
</para>
</listitem>
</xsl:template>
<xsl:template match="span">
<style type="{@style}">
<xsl:apply-templates/>
</style>
</xsl:template>
<xsl:template match="p">
<para>
<xsl:apply-templates/>
</para>
</xsl:template>
<xsl:template match="li/p">
<xsl:apply-templates/>
</xsl:template>
我的問題是,當ul
包含嵌套的列表中,有li
文本包含嵌套列表未正確覆蓋<para>
元素。
是follwos,
<listitem><para>
List<style type="color: rgb(255,0,255);">The scope of this project is to:</style>
<oli>
<listitem><para>nested list1</para></listitem>
<listitem><para>nested <style type="color: rgb(255,0,255);">The scope of this project is to:</style> list1</para></listitem>
<listitem><para>nested list1</para></listitem>
<listitem><para>nested list1</para></listitem>
<listitem><para>nested list1</para></listitem>
</oli>
</para></listitem>
如此簡單,而不是
<listitem><para>
List<style type="color: rgb(255,0,255);">The scope of this project is to:</style>
<oli>
........
</oli>
</para>
</listitem>
我需要,
<listitem><para>
List<style type="color: rgb(255,0,255);">The scope of this project is to:</style>
</para>
<oli>
........
</oli>
</listitem>
我試圖覆蓋text()
內容li
元素由<para>
但是然後<span>
元素不會輸出。
任何人都可以提出一個方法,我怎麼能做到這一點..