1

ドキュメントを繰り返し処理し、<:p />実行がない場合にすべての要素を削除する方法はありますか? 段落が次のようになっている場合、段落を削除しようとしています。

<w:p>
    <w:pPr>
        <w:pStyle w:val="Heading1" />
        <w:numPr>
            <w:ilvl w:val="0" />
            <w:numId w:val="0" />
        </w:numPr>
        <w:ind w:left="432" />
    </w:pPr>
</w:p>

これは私がこれまでに持っているものですが、空<w:p />の要素のみを削除します。

foreach (Paragraph P in D.Descendants<Paragraph>().Where(x => !x.HasChildren).ToList()
4

3 に答える 3

2

これを呼び出すことができます:

foreach (Paragraph P in D.Descendants<Paragraph>()
         .Where(o=>o.Descendants<Run>().Count() ==0).ToList()

ただし、ドキュメントにセクションがある場合は、問題が発生する可能性があることに注意してください (詳細については、こちらを確認してください: http://msdn.microsoft.com/en-us/library/documentformat.openxml.wordprocessing.sectionproperties(v=office ) .14).aspx )

于 2014-03-11T12:29:52.487 に答える
0

私はLinqを使用しています。これはよりうまくいく可能性があります。

/*parent is the document body*/
parent.Descendants<Paragraph>().Where(p=>p.Descendants<Run>().Count()==0).All(p =>
{
   p.Remove();
   return true;
});

お役に立てれば。乾杯。

于 2014-04-07T15:44:58.973 に答える