2009-11-10 43 views
2

我在Visual Studio中編寫了一個XSL轉換。據報道,在分號後是一個「意外的標記」:如何在xsl:param中轉義分號?

<xsl:param name="delimiters" select=";#" /> 

有誰知道如何逃脫的分號?它還沒有出現在我迄今發現的任何字符列表中。

回答

4

您大概想帕拉姆有;#,因爲它的價值,因爲這不是一個有效的XPath表達式?如果是這樣,你需要使用引號的屬性值:

<xsl:param name="delimiters" select="';#'" /> 

注意,值現在包裹在單引號;這會導致屬性值被解釋爲返回字符串的XPath表達式。

+1

這也是一個可能的選擇'';#'。這在有些編輯中更清楚,這些編輯一起引用和撇號。 – 2009-11-10 16:43:09

+1

在這種情況下,變量的值實際上是包含單個文本節點而不是字符串的結果樹片段。當然,這在大多數情況下完全沒有區別,但值得注意。 http://www.w3.org/TR/1999/REC-xslt-19991116#section-Result-Tree-Fragments – NickFitz 2009-11-10 17:13:16

+0

@NickFitz:謝謝,我不知道。現在你說出來了,這絕對合乎邏輯。 :) – Tomalak 2009-11-10 17:44:27

1

嘗試以下實體(分號是ASCII字符59)...

&#59; 
4

你試過嗎?

<xsl:param name="delimiters" select="';#'"/> 
+0

+1一個常見的錯誤,往往難以發現比這一個。 – Ishmael 2009-11-10 16:29:53

0

wallenborn是對的。原因是XSL中的select屬性始終需要XPath表達式。如果你想在那裏放置一個字符串,你需要引用它。