2013-03-18 2 views
1

Я читаю и пишу XML-файлы с помощью Microsoft XML Core Services 6.0 (MSXML). При написании содержимого элемента с «специальными» символами, которые должны быть экранированы в контексте xml, например, написать «&» как &. Мне не нужно заботиться об этом, потому что MSXML делает это преобразование. Это означает, что если я присваиваю элемент элементу, например. oXMLElement.Text = "1 & 2", MSXML фактически пишет oXMLElement.Text = 1 & 2, когда я создаю XML-файл. Это довольно хорошо и экономит мне некоторую работу.MSXML/XPath: специальные символы

Теперь, что я хочу сделать, это «замаскировать» XML-строки автоматически. Итак, я прочитал из XML-файла с помощью метода selectNodes, который работает, добавляя инструкцию XPath, например. //ns:element/text(). К сожалению, результат-строка, которую я получаю, выглядит как 1 & 2, а не как 1 & 2. Есть ли способ сообщить MSXML-объект или, может быть, инструкцию XPath, чтобы дать мне «замаскированную» строку? Я использую MSXML с ObjectPal/Paradox, поэтому лучшим решением будет метод из MSXML-библиотеки или «специального» заявления XPath- .

+0

Можете ли вы показать код, который используете (вызов 'selectNodes()' и немного контекста)? Особенно, как вы получаете строку результата после вызова 'selectNodes()'? Например. вы используете одно из свойств '.nodeValue',' .text' или '.xml'? – LarsH

ответ

0

Что вы видите, это «экранированное» XML-обозначение для текста. Это то, что вы должны увидеть, если вы используете свойство .xml для извлечения строки.

Чтобы получить строку без экранов, используйте .nodeValue.

+0

Отлично, теперь отлично работает с nodeValue. Большое спасибо! – whocares81

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