代码之家  ›  专栏  ›  技术社区  ›  adrianos

替换xml字符串中的引号

  •  2
  • adrianos  · 技术社区  · 16 年前

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

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

    为此:

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

    我曾经尝试过使用正则表达式,并想用它们来解决这个问题——但遗憾的是,我已经超出了我的能力范围。

    非常感谢您的帮助。

    3 回复  |  直到 14 年前
        1
  •  4
  •   AnthonyWJones    16 年前

    我不会用正则表达式来解决这个问题。下面是一段简单的代码:-

    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中,因此一旦加载完成,就不需要重新读取字符串。

        2
  •  0
  •   Gerrie Schenck    16 年前

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

        3
  •  0
  •   Community Mohan Dere    9 年前

    与处理非正则数据时一样,答案是不要使用正则表达式。真的,不要。XML和HTML应该始终由适当的解析器解析,而且ASP为您提供了轻松解析的方法。这里使用正则表达式是一个很好的例子 serious security liability .