我有一個通過從一個字文檔解析XML創建的XElement對象找到的節點。我想要做的就是找到並刪除,我試圖找到使用LINQ特定的節點。的XElement除去使用LINQ
的XML是幾百線長,所以我不想在這裏發佈整個事情,我會只顯示前20行:
<w:body xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
<w:p w:rsidR="00CB3A3E" w:rsidP="00257CF7" w:rsidRDefault="008C1E91">
<w:pPr>
<w:pStyle w:val="Heading-Title" />
</w:pPr>
<w:r>
<w:t>References</w:t>
</w:r>
</w:p>
<w:sdt>
<w:sdtPr>
<w:alias w:val="Client" />
<w:tag w:val="ClientName" />
<w:id w:val="-1008363323" />
<w:lock w:val="contentLocked" />
<w:placeholder>
<w:docPart w:val="DefaultPlaceholder_1082065158" />
</w:placeholder>
<w:dataBinding w:xpath="/project[1]/ClientName[3]" w:storeItemID="{1BDA6E50-A0B2-47FF-9929-1F045B6CF8AD}" />
<w:text />
我想刪除的節點是:<w:t>References</w:t>
。我目前得到一個「Sequence contains no elements"
例外。newBody是的XElement。
newBody.Descendants.Where(Function(e) e.Name.Equals("<w:t>") AndAlso e.Value.Equals("References")).First().Remove()
正如我所說的,我得到上面提到的例外。這是我應該如何試圖得到這個節點?有沒有更好的辦法?爲什麼我的查詢沒有得到指定的節點?關於如何更好地實現這一點的建議非常感謝,我仍然試圖學習在.net和LINQ本身中遍歷XML的最佳實踐。
非常感謝您的建議和信息。我發現它非常有用。我相信我會簡單地導航到節點而不是使用LINQ。再次感謝! – TheMethod 2012-08-09 12:17:50
不客氣,我很高興你設法解決這個問題。 – Bazzz 2012-08-09 12:42:37