Я новичок в использовании xsl и не уверен, как удалить определенные родительские узлы и все их дочерние элементы, если все они пусты.Я думаю, что ответ, показанный в этой ссылке , мне нужен, но я не уверен, как применить его к конкретному узлу вместо всей таблицы стилей.
Использование того, что в этом вопросеЯ расширил его ...
<farm>
<foo>
<bar>
<baz/>
</bar>
<quux> </quux>
<quuux>Actual content</quuux>
</foo>
<sounds>
<moo>
<meow>
<buzz></buzz>
</meow>
</moo>
<birds>
<cluck> </cluck>
<quack></quack>
</birds>
</sounds>
</farm>
Как я могу просто исключить <sounds>
и все его дочерние элементы (если они все пусты), оставляя пустые узлы, такие как foo, bar и baz.В требованиях к xml, который я создаю, должны присутствовать определенные теги, даже если они пустые, но некоторые должны быть удалены, если они пустые.
Чтобы пойти еще дальше, если у меня есть ...
<farm>
<foo>
<bar>
<baz/>
</bar>
<quux> </quux>
<quuux>Actual content</quuux>
</foo>
<sounds>
<moo>
<meow>
<buzz>"zzzz"</buzz>
</meow>
</moo>
<birds>
<cluck> </cluck>
<quack></quack>
</birds> <!-- Fixed by edit -->
</sounds>
</farm>
В этом примере <sounds>, <moo>, <meow>
и <buzz>
должны остаться, поскольку <buzz>
имеет значение, но <birds>
и его дочерние элементы должны быть удалены.
Это кажется мне таким сложным, я не уверен, каким будет самый простой способ сделать это.
Большое спасибо за ваше руководство, так как у меня кружится голова от такого количества кругов!