Форум: "Основная";
Текущий архив: 2003.08.25;
Скачать: [xml.tar.bz2];
ВнизXPath. Как разрулить между двойными и одинарными кавычками? Найти похожие ветки
← →
ХМЛ-щик (2003-08-08 14:53) [0]Господа, здравствуйте.
Использую MSXML4.0.
Визуально элемент в XML выглядит:
<element attr="Значение равно "Value" или "Value" ">
Напомню, что исходный текст будет:
<element attr="Значение равно "Value" или "Value" ">
Так вот вопрос, как мне составить XPath-запрос что бы найти этот элемент ?
Дело в том, что XPath-запрос .//element[@attr="Значение равно "Value" или "Value" " ничего не находит.
Как разрулить между двойными и одинарными кавычками?
← →
ХМЛ-щик (2003-08-08 14:56) [1]Хм.., все мои условные обозначения заменились ...
Еще раз:
Господа, здравствуйте.
Использую MSXML4.0.
Визуально элемент в XML выглядит:
<element attr="Значение равно "Value" или "Value" ">
Напомню, что исходный текст будет:
<element attr="Значение равно "Value" или "Value" ">
Так вот вопрос, как мне составить XPath-запрос что бы найти этот элемент ?
Дело в том, что XPath-запрос.//element[@attr="Значение равно "Value" или "Value" "
ничего не находит.
Как разрулить между двойными и одинарными кавычками?
← →
mOOx_ (2003-08-08 14:58) [2]Попробуй паписать <element attr="Значение равно ""Value"" или ""Value"" ">. Просто используется для отображения одной кафычни при выводе две одинарных. Может и поможет...
← →
ХМЛ-щик (2003-08-08 14:58) [3]Тьфу-ты ..., ну вы поняли ?
← →
ХМЛ-щик (2003-08-08 15:00) [4]2 mOOx_ ©
Нет, нет. В значении атрибута может быть все, что угодно. Не я туда пишу. Мне нужно найти этот элемент через XPath.
← →
mOOx_ (2003-08-08 15:01) [5]Как то не так смотриться...поясню - Value в обоих случаях заключено не в двойные кавычки, а в две ординарных. Надеюсь, понятно...
← →
ХМЛ-щик (2003-08-08 15:05) [6]Не совсем понятно.
Вопрос такой:
Как составить правильно XPath-запрос на поиск элементов по значениям атрибута, которые (значения атрибута) могут содержать одновременно двойные кавычки и одинарные ?
← →
mOOx_ (2003-08-08 15:05) [7]Я в ХМЛ не так силен, но всетаки в строках, ограниченных двойными кавычками, не должны встречаться двойные кавычки, ты над этим не задумывался :)
← →
mOOx_ (2003-08-08 15:15) [8]Есть одно предложение (но через одно место...): если ты сам пишешь туда параметры (в смысле стой прил), тогда вставляй вместо кавычек спецсимволы (тут нужна фантазия :) ), а при поиске, соответственно, принимай это во внимание. Мне кажется дело именно в кавычках (я с ними сам в свое время намучался 8) ).
← →
ХМЛ-щик (2003-08-08 15:24) [9]2 mOOx_ ©
Ну есстессно, в исходном тексте XML вместо кавычек стоят спецсимволы ! Просто браузер их и отражает, как кавычки, не смог я в вопросе показать нормально отличие отображаемого элемента XML и исходного текста XML. Браузер все равно все заменил.
2 All
Еще раз повторю задача : ХМЛ-щик (08.08.03 15:05)
← →
ХМЛ-щик (2003-08-11 06:17) [10]Сделаю еще попыточку ...
Вопрос такой:
Как составить правильно XPath-запрос на поиск элементов по значениям атрибута, которые (значения атрибута) могут содержать одновременно двойные кавычки и одинарные ?
← →
ХМЛ-щик (2003-08-11 11:20) [11]:((
← →
Leon Freitag (2003-08-11 14:36) [12]забей на MSXML!!!!!
используй другой парсер
могу один выслать
← →
NAlexey (2003-08-11 15:17) [13].//element[@attr="Значение равно "Value" или "Value" "
По логике вещей должно быть так:
.//element[@attr="Значение равно """Value""" или """Value""" "
А?
← →
ХМЛ-щик (2003-08-11 15:52) [14]2 NAlexey ©
По логике вещей ... А?
Очень жаль, но логика здесь подводит. MSXML ошибку синтаксиса дает. :((
2 Leon Freitag
могу один выслать
А он XPath поддерживает ? И насколько шустро он работает с объемами 200-300Мб ?
← →
NAlexey (2003-08-11 16:54) [15]>нь жаль, но логика здесь подводит. MSXML ошибку синтаксиса дает. :((
Согласен, прогнал жестоко. Давай разбираться...
1) Нежелательно заключать одновременно двойные кавычки и одинарные внутри значения атрибута элемента, если это необходимо, делается с помощью специальных символов:
If you use single quotes to indicate an attribute value, you must represent single quotes inside the attribute value using the " entity reference.
<myElement contraction="isn"t" />
If you use double quotes to indicate an attribute value, you must represent double quotes inside the attribute value using the " entity reference.
<myElement question="They asked "Why?"" />
Предположим что ты пользовался специальными символами и у тебя отображается строка:
<Элемент Атрибут="раз "два" "три"">
Такая строка у меня ищется так:
var
currNode: Variant;
begin
currNode := XmlDocument.selectSingleNode(".//Элемент[@ПолноеНаименование=concat("р аз ""два"" ", """три""")]");
if TVarData(currNode).VDispatch <> nil then
ShowMessage(currNode.NodeName);
end;
← →
ХМЛ-щик (2003-08-12 06:38) [16]2 NAlexey
Хм..., не перевелись еще сообразительные люди :)
Это подходит. Спасибо !
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.08.25;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.009 c