我試圖弄平一些XML代碼,因此我想刪除特殊元素內的換行符和多個空白節點。XSLT:如何刪除元素內的換行符字符
例如:
<root>
<elment1>
<element2>some text...
<element3>some text...</element3>
<element3>some text...</element3>
<element3>some text...
<element4>some text...</element4>
</element3>
</element2>
</elment1>
<elment1>
<element2>some text...
<element3>some text...</element3>
<element3>some text...</element3>
<element3>some text...
<element4>some text...</element4>
</element3>
</element2>
</elment1>
</root>
輸出:
<root>
<elment1>
<element2>some text... <element3>some text...</element3> <element3>some text...</element3> <element3>some text... <element4>some text...</element4></element3></element2>
</elment1>
<elment1>
<element2>some text... <element3>some text...</element3> <element3>some text...</element3> <element3>some text... <element4>some text...</element4></element3></element2>
</elment1>
</root>
是否有生產用XSLT這種輸出方式?
謝謝!
編輯:
我用下面的模板,例如:
<xsl:template match="element2//text()">
<xsl:analyze-string select="." regex="( | +)">
<xsl:matching-substring></xsl:matching-substring>
<xsl:non-matching-substring>
<xsl:value-of select="."/>
</xsl:non-matching-substring>
</xsl:analyze-string>
</xsl:template>
我曾經分析串,因爲正常化空間()刪除了一些必要的空格字符。我的問題是,爲什麼不是模板在element2中創建「換行節點」?編號2: 我用<xsl:output encoding="UTF-8" indent="yes" method="xml"></xsl:output>
。沒有輸出指令它就起作用。
爲什麼是這個必要嗎? –
在這種情況下,因爲InDesign無法正確處理嵌套的XML-Code \t空白節點。所以我需要一行縮進節點。 – Ferestes