Заменить кавычки в строке XML

У меня проблема с двойными кавычками в классическом ASP.

Я хочу заменить двойные кавычки "в строке. Строка содержит xml, и я не хочу заменять двойные кавычки (для атрибутов) внутри тегов.

Так что, если бы я хотел заменить двойные кавычки одинарными, я бы хотел, чтобы моя строка пошла отсюда:

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

к этому:

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

Я пытался использовать регулярные выражения и хотел бы решить эту проблему с ними - но я, к сожалению, не в себе.

Все и любая помощь с благодарностью.

4.11.2009 15:14:54
3 ОТВЕТА
РЕШЕНИЕ

Я бы не использовал 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, так что, как только это будет сделано, нет необходимости читать строку обратно.

4
4.11.2009 15:26:41
Джерри и Конрад, спасибо за ваши ответы. Энтони, который делает именно то, что я хочу - замечательно, спасибо!
adrianos 4.11.2009 15:37:42
@adrianos: хорошо, тогда прими его ответ! (отметьте галочкой рядом с вопросом, и не забудьте также проголосовать за него)
Konrad Rudolph 4.11.2009 15:41:53
ах, извините - надеюсь, что это уже отсортировано (можете ли вы сказать, что я здесь впервые?)
adrianos 4.11.2009 15:47:10

Используйте &quot;для экранирования кавычек в XML.

0
4.11.2009 15:22:00

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

0
23.05.2017 12:04:21