我使用XSLT做一個HTML到XML轉換添加新節點,在HTML輸入我有喜歡的內容如下,分析文本()節點和XSLT
<p>An image outside a paragraph is placed into an <em>Element Image Frame</em>. If there are no (or not enough) <em>Element Image Frames</em> then the image is ignored and a warning is logged.</p>
使用XSL,我需要的是,如果<em>
節點之前或之後有空間,則應將這些節點替換爲<space/>
節點。所以預期輸出,
<p>An image outside a paragraph is placed into an<space/><Italic>Element Image Frame</Italic>. If there are no (or not enough)<space/><Italic>Element Image Frames</Italic><space/>then the image is ignored and a warning is logged.</p>
注意這裏是第一<em>
節點之後沒有空間,所以沒有<space/>
增加。
我想我可以使用XSLT正則表達式,但我努力在<em>
節點之前和之後選擇兩個空格來編寫正則表達式。
<xsl:template match="p/text()">
<xsl:analyze-string select="." regex="^( )">
<xsl:matching-substring>
<xsl:choose>
<xsl:when test="regex-group(1)">
<space/>
</xsl:when>
</xsl:choose>
</xsl:matching-substring>
<xsl:non-matching-substring>
<xsl:value-of select="."/>
</xsl:non-matching-substring>
</xsl:analyze-string>
</xsl:template>
任何人都可以建議我做這件事的方法..