2009-11-04 120 views
2

我在傳統ASP中使用雙引號時出現問題。用xml字符串替換引號

我想在一個字符串替換雙引號「。字符串包含XML,我不想代替雙引號內(屬性)標籤內。

所以,如果我想,以取代單一雙引號報價,我想我的字符串從這個去:

<MyDinosaurDocument DocType="Brachysaurus">"Hello" said the little dinosaur</MyDinosaurDocument> 

這樣:

<MyDinosaurDocument DocType="Brachysaurus">'Hello' said the little dinosaur</MyDinosaurDocument> 

我已經使用正則表達式,想解決這個問題,嘗試他們 - 但我很遺憾地超出了我的深度。

所有和任何幫助,非常感謝。

回答

4

我不會使用Regex來解決這個問題。下面是一個簡單的代碼塊,它會做到這一點: -

Dim dom : Set dom = CreateObject("MSXML2.DOMDocument.3.0") 

dom.LoadXml myXMLString 

Dim node 
For Each node in dom.SelectNodes("//*/text()") 
    node.nodeValue = Replace(node.nodeValue, """", "'") 
Next 

myXMLString = dom.xml 

當然,你可能在某些時候需要所以一旦這樣做了,沒有必要讀的字符串返回反正加載XML到DOM出。

+0

Gerrie和Konrad,謝謝你的回覆。安東尼那正是我想要的 - pertect,謝謝! – adrianos 2009-11-04 15:37:42

+0

@adrianos:恩,接受他的回答,然後! (在問題旁邊的勾號標記,並且不要忘記加註) – 2009-11-04 15:41:53

+0

啊對不起 - 希望現在排序(你能告訴我這是我第一次來這裏嗎?) – adrianos 2009-11-04 15:47:10

0

使用&quot;可以在XML中轉義引號。

0

與往常一樣,在處理非常規數據時,答案並不是使用正則表達式。真的,不要。 XML和HTML應該始終由適當的解析器進行解析,而且ASP爲您提供了輕鬆完成這一任務的方法。在這裏使用正則表達式是serious security liability