using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml; namespace ZW.ClassLibrary
{
public class XmlHelpers
{
/// <summary>
/// XML文档
/// </summary>
XmlDocument xd = new XmlDocument(); /// <summary>
/// 从文件中获取XmlDocument对象
/// </summary>
/// <param name="file">xml文档</param>
/// <param name="type">文档类型</param>
public XmlHelpers(string file, string type)
{
if (type == "path")
{
XmlTextReader xr = new XmlTextReader(file);
xd.Load(xr);
xr.Close();
} if (type == "text")
{
xd.LoadXml(file);
}
} /// <summary>
/// 获取第一个匹配节点的属性值
/// </summary>
/// <param name="nodePath"></param>
/// <param name="attrName"></param>
/// <returns></returns>
public string GetAttribute(string nodePath, string attrName)
{
XmlNode xn = xd.SelectSingleNode(nodePath);
if (xn == null) //检测节点是否存在
{
return "";
}
if (xn.Attributes[attrName] == null) //检测属性是否存在
{
return "";
} return xn.Attributes[attrName].Value;
} /// <summary>
/// 获取某个节点
/// </summary>
/// <param name="nodePath"></param>
/// <returns></returns>
public XmlNode GetNode(string nodePath)
{
XmlNode xn = xd.SelectSingleNode(nodePath);
return xn;
} /// <summary>
/// 获取某个节点子集合指定属性值的节点
/// </summary>
/// <param name="nodePath">父节点</param>
/// <returns></returns>
public XmlNode GetNode(string nodePath, string attrName, string attrValue)
{
XmlNodeList xl = GetChildNode(nodePath);
if (xl != null)
{
foreach (XmlNode node in xl)
{
if (node.Attributes[attrName] != null) //检测属性是否存在
{
if (node.Attributes[attrName].Value.Trim() == attrValue)
{
return node;
}
}
}
}
return null;
} /// <summary>
/// 获取某个节点上的子节点
/// </summary>
/// <param name="nodePath"></param>
/// <returns></returns>
public XmlNodeList GetChildNode(string nodePath)
{
XmlNodeList xl = null;
XmlNode xn = xd.SelectSingleNode(nodePath);
if (xl != null)
{
xl = xd.ChildNodes;
}
return xl;
}
}
}

关于XML文档操作类的更多相关文章

  1. XML文档操作之JAXP下实现

    JAXP是java API for xml PRocessing的缩写. 其API可以在javax.xml.parsers 这个包中找到.这个包向用户提供了两个最重要的工厂类,SAXParserFac ...

  2. XMLHelper类 源码(XML文档帮助类,静态方法,实现对XML文档的创建,及节点和属性的增、删、改、查)

    以下是代码: using System; using System.Collections.Generic; using System.Linq; using System.Web; using Sy ...

  3. XML文档操作集锦(C#篇)

    在JSON没流行起来的时候xml一直作为程序存储配置信息的主流介质:特别是小型数据表方面还是不错的选择,所以经常涉及到的操作无非也就是增删改查,这篇博客主要是对这些对比较常用的操作做了个简单的总结 文 ...

  4. xml文档操作

    /** * */package com.gootrip.util; import java.io.ByteArrayOutputStream;import java.io.File;import ja ...

  5. C#XmlHelper帮助类操作Xml文档的通用方法汇总

    前言 该篇文章主要总结的是自己平时工作中使用频率比较高的Xml文档操作的一些常用方法和收集网上写的比较好的一些通用Xml文档操作的方法(主要包括Xml序列化和反序列化,Xml文件读取,Xml文档节点内 ...

  6. 用ORM的思想操作XML文档,一个对象就搞定不要太简单。滚蛋吧!XmlDocument、XmlNode、Xml***……

    大家有没有这样的感受,一涉及XML文档操作就得百度一遍.是不是非!常!烦!.各种类型,各种方法,更别提为了找到一个节点多费劲.本来想写个XML操作的工具方法,写了两行一想既然XML文档是有规律的,如果 ...

  7. 文档对象模型操作xml文档

    简介 :文档对象模型(DOM)是一种用于处理xml文档的API函数集. 2.1文档对象模型概述 按照W3C的定义,DOM是“一种允许程序或脚本动态地访问更新文档内容,结构和样式的.独立于平台和语言的规 ...

  8. Java高级特性 第15节 解析XML文档(3) - JDOM和DOM4J技术

    一.JDOM解析 特征: 1.仅使用具体类,而不使用接口. 2.API大量使用了Collections类. Jdom由6个包构成: Element类表示XML文档的元素 org.jdom: 解析xml ...

  9. C#XmlHelper操作Xml文档的帮助类

    using System.Xml; using System.Data; namespace DotNet.Utilities { /// <summary> /// Xml的操作公共类 ...

随机推荐

  1. Struts2+AJAX+JQuery 实现用户登入与注册功能

    要求:必备知识:JAVA/Struts2,JS/JQuery,HTML/CSS基础语法:开发环境:MyEclipse 10 关于UI部分请查看下列链接,有详细制作步骤: 利用:before和:afte ...

  2. 给Extjs的window弹窗的关闭事件添加验证

    问题:我想在window点击右上角叉关闭时添加一些验证,来确定是否关闭? 实现: 首先想到的是拦截window的关闭事件,在它关闭前添加验证,但是有一个问题是,如何阻止它的关闭和组织关闭后,如何让它再 ...

  3. linux 学习第十六天(Samba配置)

    Samba 服务 yum install samba mv smb.conf smb.conf.bak cat smb.conf.bak | grep -v "#" | grep ...

  4. 阿里云CentOS7部署ASP.NET Core

    本文主要介绍了阿里云CentOS7下如何成功的发布ASP.Core应用并使用nginx进行代理, 并对所踩的坑加以记录; 环境.工具.准备工作 服务器:阿里云64位CentOS 7.4.1708版本; ...

  5. jquery 60s倒计时

    前端开发中经常用到的发送按钮倒计时,每次都是重写,挺麻烦的,记录一下,以后直接来复制代码 <!DOCTYPE html> <html> <head> <met ...

  6. xftp

    SFTP.FTP 文件传输软件. 所有通过该软件的网络流量都是加密的. 1.点击新建 2.新建一个链接 3.点击确定,保存,然后点击该链接 4.链接服务器成功后,如下图右侧,可以增删改查文件.左侧文件 ...

  7. Java使用JodaTime处理时间

    简介 在Java中处理日期和时间是很常见的需求,基础的工具类就是我们熟悉的Date和Calendar,然而这些工具类的api使用并不是很方便和强大,于是就诞生了Joda-Time这个专门处理日期时间的 ...

  8. 自学tensorflow——1.框架初步了解以及构建简单的计算图计算

    1.初步了解 tensorflow是谷歌的一款开源深度学习框架.运行前,需要先定义好计算图,最后通过会话启动计算图,这么做的目的是为了防止数据在python和c++(tensorflow底层)传输的时 ...

  9. C#中的抽象方法,虚方法,接口之间的对比

    1.首先来看一看抽象类 抽象类是特殊的类,不能够被实例化:具有类的其他特性:抽象方法只能声明于抽象类中,且不包含任何实现 (就是不能有方法体),派生类也就是子类必须对其进行重写.另外,抽象类可以派生自 ...

  10. GC错误

    如果出现GC错误,可设置客户端 set mapreduce.map.java.opts 设置一下 R的GC错误,在顶端设置这个参数 options(java.parameters = "-X ...