2009-11-04 3 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, спасибо за ваши ответы. Энтони, который делает именно то, что я хочу - признаю, спасибо! – adrianos

+0

@ адрианос: ну, признай его ответ, тогда! (отметьте галочкой рядом с вопросом, и не забудьте также его переубедить) –

+0

ah sorry - надеюсь, что это отсортировано сейчас (вы можете сказать, что это мой первый раз здесь?) – adrianos

0

Используйте &quot;, чтобы избежать кавычек в XML.

0

Как всегда при работе с нерегулярными данными ответ заключается не в использовании регулярного выражения. Действительно, не надо. XML и HTML всегда должны анализироваться соответствующими анализаторами, и, кроме того, ASP предоставляет вам средства для этого. Использование регулярных выражений здесь serious security liability.

Смежные вопросы