谢谢你抽出时间来帮助我!
我目前有两个问题,我认为是一个造成了另一个。基本上,我试图在现有的XML文件中插入一个额外的节点,然后用dataGridView中的数据填充它。以下是我试图更改的XML,我需要添加“Language”标记:
<stentry>
<index>28</index>
<sid>PARAM_TITLE1</sid>
<val>
<en>Param 1</en>
<es>parámetro 1</es>
***<Language>String<language>***
</val>
<params>
<fontref>187</fontref>
<numref>0</numref>
<clip>FALSE</clip>
<include>FALSE</include>
<protected>FALSE</protected>
<cwidth>-1</cwidth>
<dwidth>0</dwidth>
</params>
</stentry>
然而,我也面临着标签在其他地方使用的问题:
<module>
..
<color>
<name>DIALOG</name>
<val>ffd4dbee</val>
<id>41a</id>
</color>
<color>
<name>WIDGET_FILL</name>
<val>ffc0c0c0</val>
<id>41c</id>
</color>
..
</module>
目前我正在使用此方法插入数据:
int n = 0;
XmlNodeList nodeList = xDoc.GetElementsByTagName("val");
foreach (XmlNode node in nodeList)
{
if (node.OuterXml.Contains("val"))
{
XmlElement newElement = xDoc.CreateElement(tag);
**string data = dataGridView1.Rows[n].Cells[3].Value.ToString();**
XmlText txtVal = xDoc.CreateTextNode(data);
XmlNode parent1 = node.ParentNode;
parent1.AppendChild(newElement);
parent1.LastChild.AppendChild(txtVal);
n++;
}
}
问题是,目前我在高亮显示的行上得到了一个NullReferenceException。我相信这是因为数据在需要的地方之前被放入了不正确的标签。所以当它试图将数据放入需要的地方时,值为null。但我并不是百分之百地了解这一点,所以我来寻求帮助。
非常感谢!