Долгосрочный слушатель, впервые вызывающий. Я относительно новичок в XPath и посмотрел на несколько других потоков здесь и в других местах, но я не могу заставить запрос работать, любая помощь будет отличной.Запрос XPath с переменными множественными условиями
У меня есть XML следующим образом:
<catalog>
<book pgid="28054" lang="en">
<title>The Brothers Karamazov</title>
<author>Dostoyevsky, Fyodor</author>
<friendly_title>The Brothers Karamazov by Fyodor Dostoyevsky</friendly_title>
<file>
<type>ePub</type>
<path>cache/generated/28054/</path>
<name>pg28054.epub</name>
<size>800</size>
</file>
<file>
<type>PDF</type>
<path>2/8/0/5/28054/</path>
<name>28054-pdf.pdf</name>
<size>5829</size>
</file>
<file>
<type compression="zipped">PDF</type>
<path>2/8/0/5/28054/</path>
<name>28054-pdf.zip</name>
<size>1693</size>
</file>
<file>
<type encoding="utf-8" compression="zipped">Text</type>
<path>2/8/0/5/28054/</path>
<name>28054-0.zip</name>
<size>726</size>
</file>
</book>
</catalog>
(каталог является корневым элементом, и в этом примере нет <contributor>
элементов)
У меня есть запрос, работающий на автора, вкладчик, название, и поиск по языку, но я получаю зависание при добавлении условия типа файла. Этот запрос, чтобы найти книги с автором или вкладчиком, содержащие «Достоевский» и заголовок, содержащие «Братья» с языком «en», - , работающий (т. Е. Ожидающие результаты), но если есть лучший способ написать это, я все уши:
/catalog//book/*[(contains(self::author,'Dostoyevsky') or contains(self::contributor,'Dostoyevsky')) and contains(../title,'Brothers') and ../@lang = 'en']
Что я не может приступить к работе ограничивает результаты запроса к файлам определенного типа, т.е. прилагаемой and ../file/type='PDF'
или что-то. Не было удачи с |
союзами.
Заранее спасибо.
О, и если это имеет значение, запрос должен быть построен динамически (из ввода формы), поэтому ему необходимо сохранить универсальный синтаксис, который будет работать с любым количеством критериев, предоставленных пользователем.
Пожалуйста, сделайте свою домашнюю работу и в как минимум, обеспечивают реальный, хорошо сформированный и значимый XML-документ. –
Что ты хочешь, Димитрий? Это _is_ мой настоящий XML. Я не думал, что содержание релевантно. – swornabsent
@swornabsent: Dimitre прав, ваш XML не очень хорошо сформирован. То, как вы пишете свой атрибут lang, не является XML. Вы должны обновить свой вопрос, чтобы сделать его действительным (например, lang = "..."). –