C#,向xml文件指定位置按照格式写入数据 @caozhy
问题描述:
@caozhy 求助
现在需要往xml指定位置等级插入相似的数据。
xml某个等级位置的数据如下所示,
C#界面留几个用户可以写入关键字的textbox控件,填完之后点击button,相应的数据会插入到指定的位置,如下,相当于在上图同级的位置插入一个类似的数据。默认是按照顺序插在ELEMENTS下最后一个。
最终插入进去的完整数据如下格式:
<IMPLEMENTATION-DATA-TYPE>
<SHORT-NAME>Earea</SHORT-NAME>
<CATEGORY>VALUE</CATEGORY>
<SW-DATA-DEF-PROPS>
<SW-DATA-DEF-PROPS-VARIANTS>
<SW-DATA-DEF-PROPS-CONDITIONAL>
<BASE-TYPE-REF DEST="SW-BASE-TYPE">/DataTypes/BaseTypes/uint8</BASE-TYPE-REF>
<COMPU-METHOD-REF DEST="COMPU-METHOD">/DataTypes/CompuMethods/Earea</COMPU-METHOD-REF>
</SW-DATA-DEF-PROPS-CONDITIONAL>
</SW-DATA-DEF-PROPS-VARIANTS>
</SW-DATA-DEF-PROPS>
</IMPLEMENTATION-DATA-TYPE>
或者有没有什么其他更好的方法可以写数据,界面需要流出textbox给用户输入,只要能实现功能就行?
答
给你个启发吧
public void UpdateValue(string nKey, string nValue)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml("<PrizeInfo><Prize_1Name>Jackpot 1</Prize_1Name><Prize_1Money>13000</Prize_1Money><Prize_1Rop>56 Rop</Prize_1Rop><Prize_1Background>255,0,255,0</Prize_1Background><Prize_1Foreground>255,0,0,0</Prize_1Foreground></PrizeInfo>");
XmlNodeList elemList = xmlDoc.GetElementsByTagName(nKey);
XmlNode mNode = elemList[0];
mNode.InnerText = nValue;
XmlTextWriter xw = new XmlTextWriter(new StreamWriter(@"D:\model.xml"));
xw.Formatting = Formatting.Indented;
xmlDoc.WriteTo(xw);
xw.Close();
}
我加载了你的XML第一个对象,然后更改了里面的内容,生成出来了
当然你可以只更改而不生成,
覆盖原来的XML就行了