Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.25;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.034 c
1-81610
Fktrc
2003-08-13 07:59
2003.08.25
Проблема с Opera, начиная с 6.10 и выше


14-81892
Viktor Kushnir
2003-08-08 09:55
2003.08.25
Кладовка


6-81854
gala
2003-06-18 14:53
2003.08.25
JAVA i Delphi


6-81852
KIE
2003-06-19 13:11
2003.08.25
Socket ошибка Дельфи


1-81771
Relaxxx
2003-08-14 12:51
2003.08.25
Диманическое присвоение имени StringList