.net里面的xml操作的小问题
最近在工作中大量使用xml操作,不过以前觉得这个很简单,可是在使用的时候还是有很多小的地方需要注意:
1、使用XmlDocument 对象创建一个节点的时候最好是赋值给一个XmlElement对象,而不是一个XmlNode对象,虽然赋值操作对于这两个对象都可以。不过由于XmlNode对象个人感觉对于浏览操作更适合一些。例如:
XmlDocument doc=new XmlDocument();
doc.LoadXml("<Root><User name=\"hehe\" email=\"abc@126.net\"/> </Root>");
XmlElement elem=doc.CreateElement("Company");
//=======================
XmlNode node=doc.CreateElement("Company");
因为对于新建的节点要进行属性等的操作,必须用XmlElement对象操作,例如:elem.SetAttribute("name","value"); 如果使用XmlNode对象,要使用索引器浏览属性,但是对于新建的属性索引器将爆出异常,例如:node.Attribute["name"]="value";出现Null Reference.
2、给一个XmlElement对象进行赋值的时候存在两种:innerText是对节点的内部赋值,而不是属性,也就是
<Element>
//InnerText;
</Element>
如果对于InnerText部分是Xml,在进行xpath的时候不轨对着里面的进行查询。
InnerXml则相反,可以进行Xpath查询。
1、使用XmlDocument 对象创建一个节点的时候最好是赋值给一个XmlElement对象,而不是一个XmlNode对象,虽然赋值操作对于这两个对象都可以。不过由于XmlNode对象个人感觉对于浏览操作更适合一些。例如:
XmlDocument doc=new XmlDocument();
doc.LoadXml("<Root><User name=\"hehe\" email=\"abc@126.net\"/> </Root>");
XmlElement elem=doc.CreateElement("Company");
//=======================
XmlNode node=doc.CreateElement("Company");
因为对于新建的节点要进行属性等的操作,必须用XmlElement对象操作,例如:elem.SetAttribute("name","value"); 如果使用XmlNode对象,要使用索引器浏览属性,但是对于新建的属性索引器将爆出异常,例如:node.Attribute["name"]="value";出现Null Reference.
2、给一个XmlElement对象进行赋值的时候存在两种:innerText是对节点的内部赋值,而不是属性,也就是
<Element>
//InnerText;
</Element>
如果对于InnerText部分是Xml,在进行xpath的时候不轨对着里面的进行查询。
InnerXml则相反,可以进行Xpath查询。