XPath-запрос для всех элементов XML - PullRequest
0 голосов
/ 03 октября 2018

Я не уверен, что это даже возможно, так как я пытаюсь заставить XPath вернуть XML, но у меня есть пример файла:

<?xml version="1.0" encoding="utf-8"?>
<items xmlns="http://www.examples.com/itemsns">
    <item id="1" type="blue">
        <name>Item 1</name>
    </item>
    <item id="2" type="red">
        <name>Item 2</name>
    </item>
    <item id="3" type="red">
        <name>Item 3</name>
    </item>
</items>

Я пытаюсь вернуть всеэлемент для справочных целей.Клиент хочет иметь возможность просмотреть исходный XML-элемент для устранения неполадок в запросах XPath, которые могут возвращать неверные или неполные данные.

Цель состоит в том, чтобы XPath возвратил весь элемент в его первоначальном виде:

<item id="2" type="red">
    <name>Item 2</name>
</item>

Возможно ли это даже в одном запросе XPath?

Заранее спасибо!

1 Ответ

0 голосов
/ 04 октября 2018

Выражения XPath выбирают узлы в исходном документе и возвращают ссылки на эти узлы.Так что да, вы можете вернуть целые узлы.Фактически, вы не можете вернуть частичные узлы.

Теперь то, что вы показали в качестве выходных данных, не является узлом, это сериализация узла в виде лексического XML.Если это то, что вы хотите, то XPath не сможет это сделать - по крайней мере, до XPath 3.1, которая предлагает функцию serialize(node).В более ранних выпусках, если приложение хочет сериализовать узел, оно должно найти какой-то другой способ достижения этого.Большинство моделей дерева (DOM, JDOM и т. Д.) Предоставляют простой способ сериализации узлов, но детали зависят от вашего основного языка и модели дерева.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...