我在Visual Studio中編寫了一個XSL轉換。據報道,在分號後是一個「意外的標記」:如何在xsl:param中轉義分號?
<xsl:param name="delimiters" select=";#" />
有誰知道如何逃脫的分號?它還沒有出現在我迄今發現的任何字符列表中。
我在Visual Studio中編寫了一個XSL轉換。據報道,在分號後是一個「意外的標記」:如何在xsl:param中轉義分號?
<xsl:param name="delimiters" select=";#" />
有誰知道如何逃脫的分號?它還沒有出現在我迄今發現的任何字符列表中。
您大概想帕拉姆有串;#
,因爲它的價值,因爲這不是一個有效的XPath表達式?如果是這樣,你需要使用引號的屬性值:
<xsl:param name="delimiters" select="';#'" />
注意,值現在包裹在單引號;這會導致屬性值被解釋爲返回字符串的XPath表達式。
嘗試以下實體(分號是ASCII字符59)...
;
你試過嗎?
<xsl:param name="delimiters" select="';#'"/>
+1一個常見的錯誤,往往難以發現比這一個。 – Ishmael 2009-11-10 16:29:53
wallenborn是對的。原因是XSL中的select
屬性始終需要XPath表達式。如果你想在那裏放置一個字符串,你需要引用它。
這也是一個可能的選擇'';#'。這在有些編輯中更清楚,這些編輯一起引用和撇號。 –
2009-11-10 16:43:09
在這種情況下,變量的值實際上是包含單個文本節點而不是字符串的結果樹片段。當然,這在大多數情況下完全沒有區別,但值得注意。 http://www.w3.org/TR/1999/REC-xslt-19991116#section-Result-Tree-Fragments – NickFitz 2009-11-10 17:13:16
@NickFitz:謝謝,我不知道。現在你說出來了,這絕對合乎邏輯。 :) – Tomalak 2009-11-10 17:44:27