2017-03-31 22 views
0

是否可以創建一個選擇元素但刪除一些子元素的XPath?我有一個RSS feed,看起來像:XPath select element,但排除結果中的子項

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

我想要的XPath表達式將返回以下XML:

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

這是上面的XML,但沒有<item>標籤。這可能與XPath有關,如果是的話,那麼XPath表達式是什麼樣的?

+1

Xpath用於從XML文件中選擇節點,您不能修改它。你應該使用xml解析器。 –

+1

xpath無法做到。你需要xsl。 Xpath是選擇。當你選擇rss時,你最終會得到所有的孩子。 – SomeDude

回答

3

您的XPath表達式選擇源樹中的節點(將其視爲對這些節點的返回引用)。這些節點仍然位於原始樹中,您可以從選定節點導航到其祖先,後代和兄弟姐妹。

使用XPath選擇節點然後顯示以該節點爲根的整個樹的應用程序非常普遍。對於應用程序來說,導航到這些節點的祖先或兄弟姐妹是不常見的(但同樣可行)。

所以首先是:結果中沒有任何孩子。您會看到這些子項,因爲發佈XPath表達式的應用程序正在選擇從返回的節點導航到子項。

如果您想保留一些子項並刪除其他子項,那麼您正在進行轉換而不是僅僅選擇,因此XPath不再是這項工作的工具:您需要XSLT或XQuery。