我剛剛創建了一個XSL轉換,其中我將Xml轉換爲xHTML並返回。這是我第一次使用XSLT。現在我正在構建「後退部分」的逆向變革,並且我陷入困境。XSLT從參數中選擇節點併合併爲XML
簡介/概述
所以基本XML包含兩個節點(斷肢)我在哪裏尋找:
<frag id="10" name="Editable_Fragment" >
<child id="11"></child>
</frag>
<frag id="20" name="Editable_Fragment2">
<child id="21"></child>
</frag>
順便說一下有這個XML裏面有很多碎片,但我只是希望爲「可編輯」的!所以我創建了這樣一個XSLT:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<xsl:apply-templates select="/review-case/review-document/review-channel/content/region/section/frag[@name='Editable_Fragment']/node()"/>
<xsl:apply-templates select="/review-case/review-document/review-channel/content/region/section/frag[@name='Editable_Fragment2']/node()"/>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
兩個節點的內容在一個富文本編輯器中作爲一個字符串保持在一起!內容是這樣的:
<child id="11" name="Editable_Fragment">....data...</child>
<child id="21" name="Editable_Fragment">....data...</child>
在富文本編輯器,我改變這兩個節點的一些數據,後來我想更新與所謂的逆變換的數據。
反向轉換問題
與兩個「孩子」標籤的字符串參數mpTransformParameters內用於進一步處理。我必須使用這個參數。我知道下面的XSLT代碼,我只是用child id =「11」和child id =「21」更新frag id =「10」。
我的問題是,我怎麼能合併回更新子ID =「11」到「破片ID = 10」和 子ID =「21‘斷枝ID = 20’,如果兩者一起上線?
「反向」 XSLT:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output indent="yes"/>
<xsl:param name="mpTransformParameters"/>
<xsl:template match="review-case/review-document/review-channel/content/region/section/frag/child[@name='Editable_Fragment']">
<xsl:value-of select="$mpTransformParameters" disable-output-escaping="yes"/>
</xsl:template>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
非常感謝