zoukankan      html  css  js  c++  java
  • ASP.NET 操作XML

    //调用XML的方法

     XMLReader rd = new XMLReader("/xml/user.xml");
        return rd.SelectNode("节点[@属性名=\"" + 属性值 + "\"]", "节点中的子节点名");

    ///操作XML的类

    using System;
    using System.Data;
    using System.Web;
    using System.Web.Security;
    using System.Xml;
    using log4net;

    namespace Apps_Factory.Common
    {

        public class XMLReader
        {
            public static readonly ILog exlog = null;
            private XmlDocument xmlDoc;
            private string xmlpath;
            static XMLReader()
            {
                exlog = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
            }
            public XMLReader(string path)
            {
                try
                {
                    xmlpath = HttpContext.Current.Server.MapPath(path);
                    xmlDoc = new XmlDocument();
                    if (xmlpath != null)
                    {
                        xmlDoc.Load(xmlpath);
                    }
                }
                catch (Exception ex) { }
            }
            public XMLReader(string path, int type)
            {
                try
                {
                    xmlDoc = new XmlDocument();
                    if (path != null)
                    {
                        xmlDoc.Load(path);
                    }
                }
                catch (Exception ex) { }
            }
            /// <summary>
            /// 获取节点集
            /// </summary>
            /// <param name="xpath"></param>
            /// <returns></returns>
            public XmlNodeList GetXMLFileodes(string xpath)
            {
                if (xmlDoc != null)
                {
                    return xmlDoc.SelectNodes(xpath);
                }
                else
                {
                    return null;
                }
            }
            /// <summary>
            /// 获取指定节点的指定项名
            /// </summary>
            /// <param name="nodeName"></param>
            /// <param name="attribute"></param>
            /// <param name="attributeValue"></param>
            /// <param name="dataAttribute"></param>
            /// <returns></returns>
            public string GetDataFromxml(string nodeName, string attribute, string attributeValue, string dataAttribute)
            {
                if (xmlDoc != null)
                {
                    XmlNodeList nodeList = xmlDoc.SelectSingleNode(nodeName).ChildNodes;//获取bookstore节点的所有子节点   
                    foreach (XmlNode xn in nodeList)//遍历所有子节点   
                    {
                        XmlElement xe = (XmlElement)xn;//将子节点类型转换为XmlElement类型   
                        if (xe.GetAttribute(attribute) == attributeValue)//如果genre属性值为“李赞红”   
                        {
                            //xe.SetAttribute("genre", "update李赞红");//则修改该属性为“update李赞红”   
                            XmlNodeList nls = xe.ChildNodes;//继续获取xe子节点的所有子节点   
                            foreach (XmlNode xn1 in nls)//遍历   
                            {
                                XmlElement xe2 = (XmlElement)xn1;//转换类型   
                                if (xe2.Name == dataAttribute)//如果找到   
                                {
                                    return xe2.InnerText;
                                }
                            }
                            break;
                        }
                    }
                    return "";
                    // xmlDoc.Save(path);//保存。
                }
                else
                {
                    return "";
                }
            }
            /// <summary>
            /// 选择node
            ///  "/节点   [@属性   =   属性值   ]"   
            /// 根节点[子节点/子节点='值']  
            /// </summary>
            /// <param name="select"></param>
            /// <returns></returns>
            public XmlNode SelectNode(string select)
            {
                XmlNode selectNode;
                if (xmlDoc != null)
                {
                    selectNode = xmlDoc.SelectSingleNode("descendant::" + select);
                    if (selectNode == null)
                    {
                        return null;
                    }
                }
                else
                {
                    return null;
                }
                return selectNode;
            }
            /// <summary>
            /// 选择节点
            /// </summary>
            /// <param name="select">根节点[子节点/子节点='值']</param>
            /// <param name="nodeName">具体某个节点名称</param>
            /// <returns>返回node节点的值</returns>
            public string SelectNode(string select, string nodeName)
            {
                XmlNode selectNode;
                string nodeInntext;
                if (xmlDoc != null)
                {
                    try
                    {
                        selectNode = xmlDoc.SelectSingleNode("descendant::" + select);
                        if (selectNode == null)
                        {
                            return "";
                        }
                        else
                        {
                            try
                            {
                                nodeInntext = selectNode.SelectSingleNode("descendant::" + nodeName).InnerText;
                            }
                            catch (Exception e)
                            {
                                exlog.Error(e.Message);
                                return "";
                            }

                        }
                    }
                    catch (Exception ex)
                    {
                        exlog.Error(ex.Message);
                        return "";
                    }
                }
                else
                {
                    return "";
                }
                return nodeInntext;
            }
            /// <summary>
            /// innertext
            /// </summary>
            /// <param name="n"></param>
            /// <returns></returns>
            public string GetXMLNodeText(XmlNode n)
            {
                if (n != null)
                {
                    return n.InnerText;
                }
                else
                {
                    return "";
                }
            }
            /// <summary>
            /// attribute value
            /// </summary>
            /// <param name="n"></param>
            /// <param name="attribute"></param>
            /// <returns></returns>
            public string GetXMLNodeText(XmlNode n, string attribute)
            {
                if (n != null)
                {
                    return n.Attributes[attribute].Value;
                }
                else
                {
                    return "";
                }
            }
        }
    }

    //XML文件

    <?xml version="1.0" encoding="utf-8"?>
    <user>
      <haoma v="1">
        <title>11111</title>
        <values>1您本月命犯桃花哦</values>
      </haoma>
      <haoma v="2">
        <title>22222</title>
        <values>2您本月命犯桃花哦</values>
      </haoma>
      <haoma v="3">
        <title>33333</title>
        <values>3您本月命犯桃花哦</values>
      </haoma>
      <haoma v="4">
        <title>4444</title>
        <values>4您本月命犯桃花哦</values>
      </haoma>
      <haoma v="5">
        <title>55555</title>
        <values>5您本月命犯桃花哦</values>
      </haoma>
      <haoma v="6">
        <title>66666</title>
        <values>6您本月命犯桃花哦</values>
      </haoma>
      <haoma v="7">
        <title>77777</title>
        <values>7您本月命犯桃花哦</values>
      </haoma>
      <haoma v="8">
        <title>88888</title>
        <values>8您本月命犯桃花哦</values>
      </haoma>
      <haoma v="9">
        <title>999999</title>
        <values>9您本月命犯桃花哦</values>
      </haoma>
    </user>

  • 相关阅读:
    [Python接口自动化]从零开始学习python自动化(1):环境搭建
    转载:python + requests实现的接口自动化框架详细教程
    转载:selenium的wait.until()
    转载:selenium webdriver定位不到元素的五种原因及解决办法
    关于xpath语句完全正确,但是页面报错: no such element: Unable to locate element: {"method":"xpath","selector":"xpath"}
    BDD测试之selenium控制滚动条
    阿里云 -- 2万并发用户方案
    关于语音合成和识别
    在线浏览文档的方案
    关于全文搜索引擎
  • 原文地址:https://www.cnblogs.com/yonsy/p/ASP_NET_XML.html
Copyright © 2011-2022 走看看