私はxmlをロードしているxmldocumentを持っています。
xml は次のようになります。
<Table1>
<buyer_id>0</buyer_id>
<buyername>CompanyA</buyername>
<address1>123 Simpsons Dr.</address1>
<address2/>
<city>Springfield</city>
<state>ST</state>
<postalcode>12345</postalcode>
<eaddress/>
<phone/>
<fax/>
</Table1>
CompanyA の各エントリを調べて、それに応じて innertext を設定することをループしています。次のコードを使用して、基準を満たす要素に内部テキストを挿入しています。
XmlDocument dom = new XmlDocument();
dom.LoadXml(xmlString);
XmlNodeList elemList = dom.GetElementByTagName("Table1");
for(int i = 0; i < elemList.Count; i++)
{
if(dom.GetElementsByTagName("buyername").Item(i).InnerText.Contains("CompanyA")
{
dom.GetElementsByTagName("address1").Item(i).InnerText = "SomeInfo";
}
}
上記のコードを使用すると、address1(123 Simpsons Dr.) の値が「SomeInfo」に置き換えられます。代わりに「SomeInfo」をaddress2要素に挿入したいのですが、使用しようとすると:
dom.GetElementsByTagName("address2").Item(i).InnerText = "SomeInfo";
エラーが発生します。既に値を持っている任意の要素に innertext を挿入できますが、要素が空の場合 ( など<address2/>
) は挿入できません。考え?