Учитывая поисковый термин, как искать атрибуты узлов в XML и возвращать XML, который содержит только те узлы, которые соответствуют термину, а также их родителей на всем пути к корневому узлу.
Вот пример входного XML:
<root>
<node name = "Amaths">
<node name = "Bangles"/>
</node>
<node name = "C">
<node name = "Dangles">
<node name = "E">
<node name = "Fangles"/>
</node>
</node>
<node name = "Gdecimals" />
</node>
<node name = "Hnumbers"/>
<node name = "Iangles"/>
</root>
Вывод, который я ищу по поисковому запросу «углы»:
<root>
<node name = "Amaths">
<node name = "Bangles"/>
</node>
<node name = "C">
<node name = "Dangles">
<node name = "E">
<node name = "Fangles"/>
</node>
</node>
</node>
<node name = "Iangles"/>
</root>
XPath, который я использую для поиска xml: "//*[contains(@name,'angles')]"
Я использую Nokogiri в Ruby для поиска XML, который предоставляет мне NodeSet всех узлов, соответствующих термину. Я не могу понять, как восстановить XML из этого набора узлов.
Спасибо!
РЕДАКТИРОВАТЬ: Исправлен пример, который должен был быть . Спасибо Димитре.
РЕДАКТИРОВАТЬ 2: снова исправил xml для корректности.