我正在使用XLST文件將XML轉換爲XML。XML非破壞空間
什麼是有效的空間表示?
<xsl:text> </xsl:text>
<xsl:text> </xsl:text>
<xsl:text> </xsl:text>
我正在使用XLST文件將XML轉換爲XML。XML非破壞空間
什麼是有效的空間表示?
<xsl:text> </xsl:text>
<xsl:text> </xsl:text>
<xsl:text> </xsl:text>
XML沒有任何命名實體之外<
,>
,"
,'
和&
。
考慮到您在XML聲明中聲明瞭正確的編碼(例如<?xml version="1.0" encoding="..." ?>
),所有其他字符都可以逐字表示。聲明UTF-8是可選的,因爲這是默認的。
換句話說:有沒有必要專門逃脫任何字符的任何地方除非離開它未轉義會破壞XML語法規則(如<
或&
會)。
你當然可以逃脫任何你想要的角色。
,這些表述是等價的,只要所得到的文檔而言:
<foo>Test Test</foo>
<foo>Test Test</foo>
<foo>Test Test</foo>
<foo>Test Test</foo><!-- given that the " " really is char code 160 -->
請注意,您可以使用一個DOCTYPE聲明自定義命名實體(如nbsp
)。
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp " ">
]>
但是鑑於XML接受任何幾乎不需要的字符的事實。特別是當您使用適當的工具(如DOM API)創建文檔時。
的有效編碼是最後兩個等效嗎?一個空間和一個非破壞空間是不一樣的......至少我如何理解它 – freefaller
這是SO正常化的一個小故障。我明確地使用了NBSP字符,但是它默默地被一個普通空間取代。在回答中似乎不可能存儲實際的NBSP。 – Tomalak
由於涉及到該問題,請將導致解析錯誤的所有實體添加到* .xls樣式表的DOCTYPE中。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp " ">
]>
<html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
現在您可以像平常一樣使用
了。
第一個是正常空間,' '不是有效編碼,而後者是' ' – freefaller