2017-03-31 2 views
0

要素を選択して子要素を削除するXPathを作成できますか?私は、次のXMLを返しますXPath式たくXPath要素を選択しますが、結果内の子を除外します

<rss> 
    <channel> 
    <title>My Feed</title> 
    <item>...</item> 
    <item>...</item> 
    <item>...</item> 
    </channel> 
</rss> 

:私は次のようになりますRSSフィード持っ

<rss> 
    <channel> 
    <title>My Feed</title> 
    </channel> 
</rss> 

ちょうど上記のXMLですが、<item>タグなし。これはXPathで可能ですか?もしそうなら、XPath式はどのように見えますか?

+1

xpathファイルからの選択ノードにXpathが使用されていますが、変更することはできません。 xmlパーサを使うべきです。 –

+1

xpathで行うことはできません。あなたはxslが必要です。 Xpathが選択されます。あなたが 'rss'を選択すると、すべての子を得ることになります。 – SomeDude

答えて

3

XPath式は、ソースツリー内のノードを選択します(ノードの参照を返します)。これらのノードはまだ元のツリーにあり、選択したノードからその先祖、子孫、および兄弟にナビゲートできます。

XPathを使用してノードを選択し、そのノードをルートとするツリー全体を表示するアプリケーションでは、よくあることです。アプリケーションがそれらのノードの先祖または兄弟にナビゲートすることは、それほど一般的ではありません(しかし同様に実行可能です)。

最初のことは、結果に子どもがいないことです。 XPath式を発行するアプリケーションは、返されたノードから子へのナビゲートを選択しているため、子が表示されます。

一部の子を保持して他の子を削除したい場合は、選択だけでなく変換を実行しているため、XPathはもはやジョブのツールではなくなりました.XSLTまたはXQueryが必要です。

関連する問題