我有XML轉義雙引號時,空間和允許額外的前斜線
<?xml version="1.0" encoding="UTF-8"?>
<icestats>
<stats_connections>0</stats_connections>
<source mount="/live">
<bitrate>Some data</bitrate>
<server_description>This is what I want to return</server_description>
</source>
</icestats>
而且我有XSL
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<xsl:copy-of select="/icestats/source mount="/live"/server_description/node()" />
</xsl:template>
</xsl:stylesheet>
我想輸出
This is what I want to return
如果我刪除雙引號,空格和正斜槓來源於它的工作原理,但我還沒有能夠成功地逃脫非標準字符在其他帖子中使用建議的方法。
爲清楚起見,下面是解決由於樂高Stormtroopr
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<xsl:copy-of select="/icestats/source[@mount='/live']/server_description/node()" />
</xsl:template>
</xsl:stylesheet>
非常感謝。 'copy-of'正在返回正確的輸出,儘管我有一種'value-of'的感覺更適合。雖然我不完全瞭解它們之間的區別(除了你所說的......以某種方式包含標籤)。 –
最終答案中的「XPath副本」包含一個額外的節點測試node(),它會導致選擇「server_description」的文本節點子節點。 XPath的'value-of'只導致'server_description'被選中,但'value-of'返回該元素的字符串值。在這個例子中給定'server_description'的內容,那兩個將產生相同的輸出。 – 2013-07-23 04:40:46