人々は、Linq-to-xml の経験と、openXML ワード文書の構築に関する知識が必要だと思います。
コンテンツ コントロールを見つけるはずのこの Linq to XML クエリがあります。ほとんどの場合は機能しますが、まだ陪審員であり、適切ではないと思います。
私が正しく理解している場合、それがどのように機能するかは、StdRuns をチェックし、そのプロパティにタグという名前のものが含まれているかどうかを確認することです。
問題は、おそらくコンテンツ コントロールが必ずしも RUN の一部ではないことです。たとえば、行の最初に追加された場合。後で問題を起こしたくないので、linq を使用してすべてのコンテンツ コントロールをヒットするより良い方法があるかどうか疑問に思います。
これは、Linq クエリが次のようになったことを示しています。
var cont = from sdt in document.MainDocumentPart.RootElement.Descendants<SdtRun>()
let sdtPr = sdt.GetFirstChild<SdtProperties>()
let tag = (sdtPr == null ? null : sdtPr.GetFirstChild<Tag>())
where tag != null
select new
{
SdtProps = sdtPr,
TagName = tag.GetAttribute("val", sdt.NamespaceUri).Value
};
前もって感謝します。