2013-04-09 74 views
0

我需要保留所有的空格中的一個屬性,如如何使用xquery保留屬性中的所有空白?

<img src="images/some  image.jpg"/> 

所有空格都顯著找到圖像。

我使用撒克遜處理器,像這樣的表達式解析XML:

declare boundary-space preserve; 
string($mydoc/html/body/div/a/img/@src) 

但結果是

images/some image.jpg 

我希望有人能幫助,因爲它似乎很容易。

Alain

回答

1

是屬性中的多個空格還是製表符?如果它是一個選項卡,則XML解析器將自動用一個空格替換它(請參閱規範中的「屬性值標準化」)。

如果是多個空格,我認爲它會被替換爲一個空間,如果屬性在DTD定義比CDATA之外的類型的唯一途徑 - 這似乎不太可能。

+0

它是多個空格。而且我無法改變屬性來自於層級代碼的方式。 – furby91 2013-04-10 10:16:48

+0

並且有DTD嗎? – 2013-04-10 20:09:28

+0

源文檔是一個html文檔 – furby91 2013-04-11 10:06:51

1

AIE AIE AIE !!! 問題不在於xquery處理。

其實,我用整潔的撒克遜處理之前的HTML轉換成XHTML。 默認情況下,Tidy將選項literal-attributes設置爲false。

此選項指定Tidy是否應確保屬性值中的空格字符未經更改而傳遞。

將其設置爲true可以解決問題,並保留所有中間空格。

對不起,浪費了你的時間