Я ищу универсальный алгоритм, который может сгладить файл XML в таблицу, учитывая несколько выражений XPath и все, что я пробовал, не удалось из-за характера доступных реализаций движков 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
На выходе должна быть таблица в следующем виде:
Имя A Имя B1 Имя C1
Имя A Имя B1 Имя C2
Имя A Имя B1 Имя C3
Имя A Имя B2 Имя C4
ИмяA ИмяB2 ИмяC5
ИмяA ИмяB2 ИмяC6
Я пытаюсь добраться до этой таблицы с помощью доступных пакетов Java XML, таких как javax.xml.xpath, jdom и т. Д., Но безрезультатно.
Кажется, что
XPath.evaluate("/A/B/C/@Name", doc, XPathConstants.NODESET);
код вернет «отсоединенный» узел, который невозможно пройти.
Я пробовал много способов рекурсии на узлах, оцениваемых XPath, но безрезультатно. Также задумывался об обходе DFS дерева DOM, но опять же все оценщики XPath, похоже, возвращают отдельные узлы, где node.getParent () всегда будет возвращать 'null'.
Есть какие-нибудь идеи для алгоритма "multi-XPath выражений с учетом", который может отслеживать вложенные выражения XPath?
У меня такое чувство, что это легко сделать с XSLT, но мои навыки XSLT довольно ржавые ...