感谢您抽出宝贵的时间来帮助我!
我目前有两个问题,我认为一个导致另一个。基本上我试图在现有的 XML 文件中插入一个额外的节点,然后用来自 dataGridView 的数据填充它。这是我要更改的 XML,我需要添加“语言”标签:
<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 。我相信这是因为在需要的位置之前将数据放入了不正确的标签中。因此,当它尝试将数据放在需要的地方时,该值为空。但是我不是100%的,所以我来寻求帮助。
非常感谢!