Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.008 c
1-81838
SergP
2003-08-13 12:43
2003.08.25
Как проверить создан ли объект?


1-81805
GameBoy
2003-08-12 20:55
2003.08.25
OleExcel.pas


1-81639
xn0bys
2003-08-12 15:07
2003.08.25
Как сделать кнопку к новой форме (Child) на панели задач.


14-81872
snake1977
2003-08-08 14:30
2003.08.25
Компонент для TDBGrid


3-81588
L.N.N.
2003-07-29 15:41
2003.08.25
Memo показывает только первую строчку





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский