私は次のようなコードを使用しています:
public void BindControlsToCustomXmlPart()
{
wordApp = (Word.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Word.Application");
foreach (Word.ContentControl contentControl in wordApp.ActiveDocument.ContentControls)
{
if (contentControl.Tag == "FieldName")
{
string xPathFieldName = "ns:records/ns:record/ns:FieldName";
contentControl.XMLMapping.SetMapping(xPathFieldName,
prefix, currentWordDocumentXMLPart);
}
最終的には、追加したいすべての新しいフィールドが発生します。この冗長なコードを繰り返す必要があります。
if (contentControl.Tag == "FieldName2")
{
string xPathFieldName2 = "ns:records/ns:record/ns:FieldName2";
contentControl.XMLMapping.SetMapping(xPathFieldName2,
prefix, currentWordDocumentXMLPart);
}
このコードを一度記述して、フィールドごとに「FieldName」部分を動的に更新する方法はありますか? つまり、xml ファイル内の各 xmlnode をインクリメントするある種のループがあります (この場合、xml ノード FieldName を FieldName のタグでコンテンツ コントロールにマップし、xml ノード FieldName2 をコンテンツ コントロールにマップします)。 FieldName2 のタグ