2009-11-04 102 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