我在经典ASP中出现双引号问题。
我想在字符串中替换双引号。字符串包含xml,我不想在标记内替换双引号(对于属性)。
因此,如果我想用单引号替换双引号,我希望我的字符串可以从这里开始:
<MyDinosaurDocument DocType="Brachysaurus">"Hello" said the little dinosaur</MyDinosaurDocument>
到此:
<MyDinosaurDocument DocType="Brachysaurus">'Hello' said the little dinosaur</MyDinosaurDocument>
我已经尝试过使用正则表达式,并希望用它们解决这个问题 - 但我很遗憾地离开了我的深度。
非常感谢所有和任何帮助。
答案 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)
使用"
来转义XML中的引号。
答案 2 :(得分:0)
与处理非常规数据一样,答案不是使用正则表达式。真的,不要。 XML和HTML应始终由适当的解析器进行解析,而ASP则为您提供了轻松完成此操作的方法。在这里使用正则表达式是serious security liability。