У меня есть файл XML, из которого я хочу, чтобы извлечь узлы, идентификатор атрибута «Необходимое»:Как извлечь определенные узлы из XML-файла вместе с родителями?
<root>
<level1 id="NotNeeded">
</level1>
<level1 id="Needed">
<level2 id="Needed">
<level3 id="Needed">I need this one</level3>
<level3 id="NotNeeded1">I don't need this one</level3>
</level2>
<level2 id="notNeeded">
<level3 id="notNeeded">I don't need this one</level3>
</level2>
</level1>
</root>
(Глубина произвольна) мне нужно, чтобы преобразовать его в следующем виде:
<root>
<level1 id="Needed">
<level2 id="Needed">
<level3 id="Needed">I need this one</level3>
</level2>
</level1>
</root>
Что я пытаюсь сделать (с псевдокодом, я надеюсь, это понятно):
myextraction=[element with id "Needed"]
while [myextraction has parent]
{
myextraction=myextraction.[parent without children].Addtochildren(myextraction)
}
есть ли более простой способ сделать это? (Возможно встроенный метод?)
Ваша постановка задачи оставляет один случай: что делать, если родитель 'NotNeeded' но ребенок элемент? –
Я использовал NotNeeded только для узлов, у которых нет нужного ребенка – Viktor