Как извлечь узлы без немедленного текста после них с XPath 1.0?
82 просмотра
1 ответ
Как выбрать определенные узлы, которые имеют по крайней мере один узел-потомок, но не имеют непосредственного текстового узла после них, используя одно выражение XPath 1.0?
Например, из следующего XML:
<p>This is some <b>forma</b><b>tted</b> text, this is <b>bold</b>.</p>
Я хочу извлечь первый <b>
тег.
До сих пор я придумал следующее выражение:
//b[following-sibling::*[1][self::b]][not(text() = following-sibling::text()[1]/preceding-sibling::*[1][self::b]/text())]
Однако он не будет извлекать теги с идентичным текстом, например:
<p>I am hungry for <b>paw</b><b>paw</b>.</p>
Может ли быть лучше и проще?
Автор: Cuder Источник Размещён: 15.07.2019 01:26Ответы (1)
2 плюса
Этот XPath,
//*[following-sibling::node()[1][not(self::text())]]
выберет все элементы, которые имеют непосредственно следующий родной элемент, который не является текстовым узлом.
Автор: kjhughes Размещён: 05.03.2019 12:52Вопросы из категории :
- xml Обработка XML в Python
- xml Каков наилучший способ проверки XML-файла по сравнению с XSD-файлом?
- xml Removing nodes from an XmlDocument
- xml Как анализировать XML-файлы?
- xml XmlSerializer - произошла ошибка, отражающая тип
- xml Как заставить Axis 1.4 не генерировать несколько префиксов для одного и того же пространства имен XML?
- xpath Какой правильный XPath для выбора атрибутов, которые содержат «foo»?
- xpath Создать XML-узлы на основе XPath?
- xpath XPath выберите узел с пространством имен
- xpath Использование Xpath с пространством имен по умолчанию в C #
- xpath Как я могу преобразовать строку в верхний или нижний регистр с помощью XSLT?
- xpath Как разобрать XML в Bash?
- xpath-1.0 Проверьте тип узла в шаблоне XSL
- xpath-1.0 Как использовать начальный-с (), содержит () и заканчивается-в () в XPath, чтобы найти внутренний текст XML-узла? в XPATH 1.0
- xpath-1.0 XPath 1.0: используйте значение атрибута родителя текущего узла, чтобы найти другой соответствующий узел
- xpath-1.0 Могу ли я рефакторинг, чтобы избежать "self ::" и "parent ::"?
- xpath-1.0 Средние числа от нечистых узлов, использующих чистый xpath 1.0
- xpath-1.0 Почему XPath поверх System.Xml.XmlDocument не находит смежные узлы текста и CData?