Я ищу общий алгоритм, который может сгладить XML-файл в таблицу, учитывая несколько выражений XPath и все, что я пробовал, из-за природы доступных версий XPath.Сглаживание XML с использованием нескольких выражений XPath
Учитывая XML:
<A Name="NameA">
<B Name="NameB1">
<C Name="NameC1"/>
<C Name="NameC2"/>
<C Name="NameC3"/>
</B>
<B Name="NameB2">
<C Name="NameC4"/>
<C Name="NameC5"/>
<C Name="NameC6"/>
</B>
и следующие выражения XPath в качестве входных данных:
/A/@Name
/A/B/@Name
/A/B/C/@Name
Вывод должен быть таблица в следующем виде:
НАМЕА NameB1 NameC1
НАМЕА NameB1 NameC2
НАМЕА NameB1 NameC3
НАМЕА NameB2 NameC4
НАМЕА NameB2 NameC5
НАМЕА NameB2 NameC6
Я пытаюсь получить в эту таблицу с имеющимися Java XML пакеты, такие как javax.xml.xpath, jdom и т. д., безрезультатно.
Похоже, что код
XPath.evaluate("/A/B/C/@Name", doc, XPathConstants.NODESET);
возвратит «обособленный» узел, который не может быть пройден.
Я пробовал много способов рекурсии на оцененных по XPath узлах безрезультатно. Также подумал об обходе DFS дерева DOM, но снова все оценщики XPath, похоже, возвращают отдельные узлы, где node.getParent() всегда возвращает «null».
Любые идеи для алгоритма с поддержкой мульти-XPath-выражений, который может отслеживать вложенные выражения XPath?
У меня есть чувство, что это можно легко с помощью XSLT, но мои навыки XSLT довольно ржавый ...
Забыл упомянуть, что XML, ни XPath являются статическими. Выражение дано без предварительного знания XML. – yarinbenado