在XSLT 1.0,什麼是處理此xml元素XSLT解析字符串與兩個轉義和非轉義字符(<和<)
<Product>This is a product. < and its price is < 10</Product>
注意,「小於符號」表示的最佳方式兩次。即作爲'<' and '<'.
逃脫<
角色,我能做到這一點
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" method="html" indent="yes" />
<xsl:template match="/">
<html>
<body>
<table border="1">
<tr>
<th>Product</th>
</tr>
<tr>
<td><xsl:value-of select="Product" disable-output-escaping="yes" /></td>
</tr>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
- 如果設置了禁用輸出轉義爲「是」,
<
字符顯示正確,但"<"
被完全去掉了。 - 如果我將disable-output-escaping設置爲「no」,
<
字符會導致解析異常。
我該怎麼做才能讓兩者兼容?
只有魔法,而不是白色。請只使用格式正確的XML。 – kan 2013-03-06 21:34:27
@kan在說什麼,是<?>不是XML中的有效文本內容。 – 2013-03-06 21:35:21
該XML無效(或者甚至是格式良好)。 XML *要求*在被解析的字符數據中以'<'(或者''或者'<'或者其他)的形式轉義。 (與某些SGML應用程序不同,XML沒有任何純字符數據內容元素的概念。) – ruakh 2013-03-06 21:35:47