替换xml字符串中的引号

时间:2009-11-04 15:14:55

标签: regex asp-classic

我在经典ASP中出现双引号问题。

我想在字符串中替换双引号。字符串包含xml,我不想在标记内替换双引号(对于属性)。

因此,如果我想用单引号替换双引号,我希望我的字符串可以从这里开始:

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

到此:

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

我已经尝试过使用正则表达式,并希望用它们解决这个问题 - 但我很遗憾地离开了我的深度。

非常感谢所有和任何帮助。

3 个答案:

答案 0 :(得分: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中,所以一旦完成,就不需要再读取字符串了。

答案 1 :(得分:0)

使用&quot;来转义XML中的引号。

答案 2 :(得分:0)

与处理非常规数据一样,答案不是使用正则表达式。真的,不要。 XML和HTML应始终由适当的解析器进行解析,而ASP则为您提供了轻松完成此操作的方法。在这里使用正则表达式是serious security liability