博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
读取XML的内容
阅读量:6951 次
发布时间:2019-06-27

本文共 8361 字,大约阅读时间需要 27 分钟。

读取XML的内容

///     /// 读写xml文件    ///     public class XmlReader    {        //========================================================= //        #region 获取XmlDocument对象        ///         /// 根据XML文件内容获取XmlDocument对象        ///         ///         /// 
public static XmlDocument GetXmlDocByXmlContent(string xmlFileContent) { if (string.IsNullOrEmpty(xmlFileContent)) { return null; } var xDoc = new XmlDocument(); try { xDoc.LoadXml(xmlFileContent); } catch { xDoc = null; } return xDoc; } /// /// 根据XML文件路径获取XmlDocument对象 /// /// ///
public static XmlDocument GetXmlDocByFilePath(string xmlFilePath) { if (string.IsNullOrEmpty(xmlFilePath) || !File.Exists(xmlFilePath)) { return null; } var xDoc = new XmlDocument(); try { xDoc.Load(xmlFilePath); } catch { throw new Exception(string.Format("请确认该XML文件格式正确,路径为:{0}", xmlFilePath)); } return xDoc; } #endregion //========================================================= // //========================================================= // #region 获取XML节点(或节点列表) /// /// 获取父节点下指定节点名称的第一个子节点 /// /// /// ///
public static XmlNode GetFirstChildNodeByName(XmlNode parentXmlNode, string childNodeName) { var childXmlNodes = GetChildNodesByName(parentXmlNode, childNodeName); if (childXmlNodes != null && childXmlNodes.Count > 0) { return childXmlNodes[0]; } return null; } /// /// 获取父节点下指定节点名称的子节点列表 /// /// 父节点 /// 节点名称 ///
public static XmlNodeList GetChildNodesByName(XmlNode parentXmlNode, string nodeName) { if (parentXmlNode == null || string.IsNullOrEmpty(nodeName)) { return null; } return GetChildNodesByXPathExpr(parentXmlNode, string.Format(".//{0}", nodeName)); } /// /// 获取父节点下满足xpathExpr表达式的XML子节点列表 /// /// 父节点 /// ///
public static XmlNodeList GetChildNodesByXPathExpr(XmlNode parentXmlNode, string xpathExpr) { if (parentXmlNode == null || string.IsNullOrEmpty(xpathExpr)) { return null; } return parentXmlNode.SelectNodes(xpathExpr); } /// /// 获取父节点下的第一个子节点 /// /// ///
public static XmlNode GetFirstChildNode(XmlNode parentXmlNode) { var childXmlNodes = GetChildNodes(parentXmlNode); if (childXmlNodes != null && childXmlNodes.Count > 0) { return childXmlNodes[0]; } return null; } /// /// 获取父节点的子节点列表 /// /// 父节点 ///
public static XmlNodeList GetChildNodes(XmlNode parentXmlNode) { return parentXmlNode == null ? null : parentXmlNode.ChildNodes; } #endregion //========================================================= // //========================================================= // #region 读取节点属性值 /// /// 读取某个XML节点的属性值(根据属性名) /// /// /// ///
public static string ReadAttrValue(XmlNode xmlNode, string attrName) { var xmlElement = xmlNode as XmlElement; return xmlElement == null ? null : xmlElement.GetAttribute(attrName); } /// /// 读取父节点下指定节点名和属性名的第一个子节点的属性值 /// /// XML父节点 /// 节点名称 /// 属性名 ///
public static string ReadFirstAttrValue(XmlNode parentXmlNode, string childNodeName, string attrName) { var attrVals = ReadAttrValues(parentXmlNode, childNodeName, attrName); return (attrVals == null || attrVals.Length == 0) ? null : attrVals[0]; } /// /// 读取父节点下指定节点名和属性名的所有子节点的该属性值的数组 /// /// XML文档 /// 节点名称 /// 属性名 ///
public static string[] ReadAttrValues(XmlNode parentXmlNode, string childNodeName, string attrName) { if (parentXmlNode == null || string.IsNullOrEmpty(childNodeName) || string.IsNullOrEmpty(attrName)) { return null; } var xpathExpr = string.Format("//{0}[@{1}]", childNodeName, attrName); var nodes = GetChildNodesByXPathExpr(parentXmlNode, xpathExpr); if (nodes != null && nodes.Count > 0) { var nodeCount = nodes.Count; var attrVals = new string[nodeCount]; for (var i = 0; i < nodeCount; i++) { attrVals[i] = ((XmlElement)nodes[i]).GetAttribute(attrName); } return attrVals; } return null; } #endregion //========================================================= // //========================================================= // #region 读取父节点下的子节点的文本内容 /// /// 读取父节点下指定节点名的第一个子节点的文本 /// /// /// ///
public static string ReadFirstChildNodeTextByName(XmlNode parentXmlNode, string childNodeName) { var childNodeTexts = ReadChildNodeTextsByName(parentXmlNode, childNodeName); if (childNodeTexts != null && childNodeTexts.Length > 0) { return childNodeTexts[0]; } return null; } /// /// 读取父节点下指定节点名的所有子节点的文本数组 /// /// /// ///
public static string[] ReadChildNodeTextsByName(XmlNode parentXmlNode, string childNodeName) { if (parentXmlNode == null || string.IsNullOrEmpty(childNodeName)) { return null; } var xpathExpr = string.Format(".//{0}", childNodeName); var childNodes = GetChildNodesByXPathExpr(parentXmlNode, xpathExpr); if (childNodes != null && childNodes.Count > 0) { var nodeCount = childNodes.Count; var nodeTexts = new string[nodeCount]; for (var i = 0; i < nodeCount; i++) { nodeTexts[i] = childNodes[i].InnerText; } return nodeTexts; } return null; } /// /// 读取父节点下的第一个子节点的文本 /// /// ///
public static string ReadFirstChildNodeText(XmlNode parentXmlNode) { var childNodeTexts = ReadChildNodeTexts(parentXmlNode); if (childNodeTexts != null && childNodeTexts.Length > 0) { return childNodeTexts[0]; } return null; } /// /// 读取父节点下的所有子节点的文本数组 /// /// ///
public static string[] ReadChildNodeTexts(XmlNode parentXmlNode) { if (parentXmlNode == null) { return null; } var childNodes = GetChildNodes(parentXmlNode); if (childNodes != null && childNodes.Count > 0) { var nodeCount = childNodes.Count; var nodeTexts = new string[nodeCount]; for (var i = 0; i < nodeCount; i++) { nodeTexts[i] = childNodes[i].InnerText; } return nodeTexts; } return null; } /// /// 读取XML节点文本 /// /// ///
public static string ReadNodeText(XmlNode xmlNode) { if (xmlNode == null) { return null; } return xmlNode.InnerText; } #endregion //========================================================= // }
View Code

 

转载于:https://www.cnblogs.com/baibanr/p/9474569.html

你可能感兴趣的文章
CENTOS6.5 yum配置
查看>>
源码编译安装mysql5.6报错及解决方法
查看>>
linux常用命令汇总
查看>>
PPT加入背景音乐
查看>>
OpenGL入门笔记(十三)
查看>>
Web趋势地图
查看>>
Python天天美味(11) - 可爱的大小写
查看>>
单链表
查看>>
WF4:AcitivityAction和ActivityFunc
查看>>
诺基亚S40手机联系人导入安卓手机
查看>>
java多线程之:创建开启一个线程的开销
查看>>
【福利将至】iPhone用户可用Siri发微信了
查看>>
分布式锁的三种实现方式
查看>>
逆向路由器固件之敏感信息泄露 Part2
查看>>
WebSocket与消息推送
查看>>
apache做转发
查看>>
一条SQL的改写
查看>>
常用的慢查询日志分析工具
查看>>
MySQL单表模拟锁的几个场景
查看>>
因子分解机模型简介
查看>>