Word ドキュメントから XML を解析して作成された 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 トラバーサルに関して、ベスト プラクティスを学ぼうとしています。どうもありがとう!!