[XML]方便处理XML的几个小函数(C#)

在处理XML过程中,感觉教材里面的例程,经常比较晦涩难用,牵扯了太多对象,翻来覆去地调用,倒是显得程序的逻辑性和易读性变得很差。分享一些小函数,希望能体现一点“重构”的思路~

XML是很好用的东西,虽然目前还没有大范围内接触Namespace、Schema、DTD这些东西。但对于存储小型数据来说,XML确实很方便,也不需要数据库的种种蛋疼配置,又比直接操作Excel更富有逻辑性。随便拷来拷去,找个文本编辑器,打开看也轻轻松松。实在要看起来有个表格样的话,就用Excel打开咯,各种给力~

using System.Xml;
using System.Xml.XPath;

// 给指定XmlNode添加属性
static public void AppendAttribute(XmlDocument xDoc, XmlNode xNode, string sAttributeName, string sAttributeValue)
{
	XmlAttribute xa = xDoc.CreateAttribute(sAttributeName);
	xa.Value = sAttributeValue;
	xNode.Attributes.Append(xa);
}

using System.Xml;
using System.Xml.XPath;

// 直接返回 XPathNodeIterator ,一行搞定,实现XPath遍历节点
static public XPathNodeIterator GenerateXPathIter(string sXMLUri, string sExp, string sSort, XmlDataType xDateType)
{
	XPathDocument xpDoc = new XPathDocument(sXMLUri);
	XPathNavigator xpNav = xpDoc.CreateNavigator();
	XPathExpression xpExp = xpNav.Compile(sExp);

	xpExp.AddSort("@" + sSort, XmlSortOrder.Ascending, XmlCaseOrder.None, "", xDateType);
	XPathNodeIterator xpIter = xpNav.Select(xpExp);

	return xpIter;
}
using System.Xml;
using System.Xml.XPath;

// 生成XML文档的框架以及根节点,调用后,可直接使用DOM对象进行编辑
static public void CreateXml(string sUri, string sRootElement)
{
	XmlTextWriter xtw = new XmlTextWriter(sUri, Encoding.UTF8);
	xtw.Formatting = Formatting.Indented;
	xtw.IndentChar = '\t';
	xtw.WriteStartDocument();
	xtw.WriteStartElement(sRootElement);

	xtw.WriteEndElement();
	xtw.WriteEndDocument();

	xtw.Close();
}

目前就我的应用水平,编辑用DOM对象,查询用 XPathNodeIterator,都很方便。

关于aGuegu

向着更高的逼格
此条目发表在C#, XML分类目录,贴了, , , 标签。将固定链接加入收藏夹。