如有XML文件:
<DCI>
<type Name="System">
<cmd Name="DCI_SELECT_MODE" Code="0x100">
<cmd Name="DCI_SET_OUTPUT_PIC_SIZE" Code="0x103">
</cmd>
</type>
<type Name="Function">
<cmd Name="DCI_AE_LUMA_REF_CTRL" Code="0x300">
</cmd>
</type>
</DCI>
开头调用C#的XML连接库:
using System.Xml;
随后建立一个xml对象,并打开指定文件夹下的xml文件:
public XmlDocument doc = new XmlDocument();
doc.Load(filepath);
读XML:
然后是建立具体node对象或者nodelist对象并进行操作:XmlNode node = doc.SelectSingleNode("/DCI/type[@Name='System']"); //node对象
XmlNodeList list = doc.SelectSingleNode("/DCI/type[@Name='System']").ChildNodes; //nodelist对象
XmlNodeList为XmlNode的集合,也可以通过node.ChildNodes获得
XmlNode主要要用到的属性:node.Attributes
string value = node.Attributes["Name"].Value; //返回Name标签的实际值,也就是System
XmlNodeList的操作主要通过循环访问list中所有的XmlNode然后进行操作
foreach (XmlNode node in list)
{
string nodeName= node.Attributes["Name"].Value;
}
写XML:
//创建一个元素,这边是根元素
XmlElement root = doc.CreateElement("DCI");
//随后创建一个属性,并设值
XmlAttribute name = doc.CreateAttribute("Name");
name.Value = "AAA";
//将属性加到root元素中,再将元素加到xml中,随后保存
chip.Attributes.Append(name);
doc.AppendChild(root);
doc.Save(bXml);
修改:
private string bXml = "base.xml";
//读xml
doc.Load(bXml);
//找到目标节点
XmlNode root = doc.SelectSingleNode("DCI");
//创建新的子节点
XmlElement type = doc.CreateElement("type");
XmlAttribute name = doc.CreateAttribute("Name");
name.Value = "System";
module.Attributes.Append(name);
chip.AppendChild(module);