這是我的問題...我需要選擇整個xml文檔中的所有內容,但是隻留下一個標籤。不幸的是,這個標籤可能會有所不同。使用XQUERY消除XML中的單個元素類型
使用下面的代碼示例,我想要刪除所有<crud>
,<crud2>
和<...>
(等)元素。 <crud>
可能會有更多的孩子,但我不希望他們反正。
<body>
<h2/>
<crud>
<crud2/>
<...>
</crud>
<div>
<p> </p>
</div>
<div>
<p>
</p>
<crud>
<crud2/>
<...>
</crud>
</div>
</body>
我試過幾種方法。
let $body := "the xml sample"
return $body/*[fn:not(descendant-or-self::crud)]
這種方法需要很多。它將刪除包含crud的整個<div>
塊,但我需要包含<div>
和<p>
。 所有其他方法似乎只刪除<body>
的子代<crud>
,或者也將其移除。
所以,我基本上需要一種方法,達到每個元素,並刪除所有的<crud>
而不採取任何其他措施。
最終的XML應該是這樣的:
<body>
<h2/>
<div>
<p> </p>
</div>
<div>
<p>
</p>
</div>
</body>
我非常感謝任何及所有的幫助。
謝謝你的幫助。我現在走在正確的軌道上,但我似乎還有一個問題。如果在整個文檔中使用命名空間標記crud,會怎麼樣?所以''實際上是''。我已將xslt中的匹配更改爲some:crud,但現在我得到了「前綴某些沒有名稱空間綁定」。 –
SpockJenkins
哦..明白了。在根標籤中聲明名稱空間。 ''。再次感謝您的幫助。 –
SpockJenkins