using System;
using System.Collections;
using System.IO;
using System.Text;
using System.Xml;
namespace OA.SystemFramework
{
/// <summary>
/// XML工具.
/// </summary>
public class XmlToolkit
{
/// <summary>
/// 读取XML节.
/// </summary>
/// 文件名.
/// 文件路径.
/// <returns>XML字符串.</returns>
public static string ReadFregment( string file, string path )
{
string LastElement = Path.GetFileName( path );
ArrayList list = new ArrayList();
XmlTextReader reader = new XmlTextReader( file );
while( reader.Read() )
{
bool needRemove = false;
if( reader.NodeType == XmlNodeType.Element )
{
list.Add( reader.Name );
if( reader.IsEmptyElement )
{
needRemove = true;
}
}
else if( reader.NodeType == XmlNodeType.EndElement )
{
needRemove = true;
}
#if DEBUG
Console.WriteLine( "XmlToolkit:遍历Path:" + Toolkit.Array2String( list, "\\" ) );
#endif
if( reader.Name == LastElement )
{
string currentPath = Toolkit.Array2String( list, "\\" );
#if DEBUG
Console.WriteLine( "XmlToolkit:比较Path:" + currentPath );
#endif
if( currentPath == path + "\\" )
{
string fregment = reader.ReadOuterXml();
#if DEBUG
Console.WriteLine( "节点值:" + fregment );
#endif
reader.Close();
return fregment;
}
}
if( needRemove )
{
list.RemoveAt( list.Count - 1 );
}
}
reader.Close();
return "";
}
/// <summary>
/// 创建
/// </summary>
/// XML节.
/// <returns>XML读取器.</returns>
public static XmlTextReader CreateReader( string fregment )
{
XmlParserContext context = new XmlParserContext( null, null, null, XmlSpace.None );
context.Encoding = Encoding.GetEncoding( "gb2312" );
return new XmlTextReader( fregment, XmlNodeType.Element, context );
}
/// <summary>
/// 读取XML文件.
/// </summary>
/// XML文件名.
/// 文件路径.
/// 属性名.
public static string Read( string xmlFile, string path, string attr )
{
string cdFregment = XmlToolkit.ReadFregment( xmlFile, path );
XmlTextReader reader = XmlToolkit.CreateReader( cdFregment );
string _value = null;
while( reader.Read() )
{
if( reader.NodeType == XmlNodeType.Element &&
reader.Name == Path.GetFileName( path ) )
{
_value = reader.GetAttribute( attr );
break;
}
}
reader.Close();
return _value;
}
} //class XmlToolkit
}
分享到:
相关推荐
XmlUtils JS操作XML工具类 ** * 加载xml文件,参数: * @param {string} xmlPath:加载的xml文件路径; * @return {Object} true 正常加载; false 加载失败 *
本文将详细讲解如何使用Java实现XML到Map以及Map到XML的一键转换,并介绍一个已封装好的工具类`EasyXmlUtil`。 首先,XML到Map的转换涉及到XML的解析。在Java中,我们可以使用`javax.xml.parsers....
xml工具类
* 本类是专门解析XML文件的,主要用于为系统读取自己的配置文件时提供最方便的解析操作 * @author HX * */ public class XmlManager { /** * 得到某节点下某个属性的值 * @param element 要获取属性的...
java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析...
本文将详细介绍如何创建一个Java通用的XML解析工具类,以便于在项目中复用和简化XML处理。 首先,我们来看DOM解析方式。DOM解析器会将整个XML文档加载到内存中,形成一棵树形结构,便于对XML进行随机访问。以下是一...
提供2个方法: (1)XMLUtil.getValue(String tag,String attr); 获取指定tag的指定attr的值。...两个函数的返回值是ArrayList,每个XMLResult包括获得的值/内容,对应tag在整个xml结构中的位置。 复出了,请大家支持。
json与xml互相转换工具类
基于安卓的XML工具类
首先,`tinyxml.h`是TinyXml的核心头文件,它包含了所有的类定义和接口声明。其中最主要的类有以下几个: 1. **TiXmlDocument**: 代表整个XML文档,可以加载XML文件或者创建一个新的XML文档。 2. **TiXmlElement**:...
本篇文章将深入探讨如何使用自定义的工具类`AppUtil`来简化JSON和XML的生成过程。 首先,JSON是一种轻量级的数据交换格式,它基于JavaScript语法,但独立于语言,易于人阅读和编写,同时也易于机器解析和生成。JSON...
本篇文章将详细介绍Java中如何实现XML和JSON的相互转换,并提供一个名为`XmlToJson.java`的工具类作为参考。 首先,XML是一种结构化的数据表示方式,它以树形结构存储数据,易于人类阅读和编写,同时也易于机器解析...
在本教程中,我们将深入探讨如何使用DOM4J来解析XML文件,并创建一个无敌连环解析工具类。 首先,我们需要了解XML的基本概念。XML(可扩展标记语言)是一种标记语言,常用于数据交换和存储。它的结构化特性使其非常...
本文将详细介绍如何使用工具类进行XML与实体类的转换,并探讨相关依赖和实现方法。 首先,XML转换为Java实体类的基本原理是通过解析XML文档,创建对应的Java对象。Java中常用的库有JAXB(Java Architecture for XML...
实现的一个简单的基于java 的,可以在xml和json之间相互转换的工具类,因为实在没有积分了,所以要点积分,希望理解~
本文将详细介绍基于Pull解析器的XML解析生成工具类的实现,以及如何将XML文件转换为对象和将对象转换为XML文件。 1. **XML解析器的初始化** 在使用Pull解析器之前,首先需要通过`XmlPullParserFactory`工厂类创建`...
Java常用工具类XML工具类、数据验证工具类知识点介绍 一、XML工具类 XML工具类是Java中的一种常用工具类,用于处理XML文档。XML工具类提供了多种方法来处理XML文档,例如解析XML文档、转换XML文档、验证XML文档等...
【JAVA对象序列化保存为XML文件的工具类】 在Java编程中,对象序列化是一种将对象的状态转换为字节流的过程,以便可以存储或在网络上传输。而在反序列化时,这个字节流又可以恢复为原来的对象。Java提供了一个方便...
JAXB是Java开发中处理XML的强大工具,通过注解和API实现了XML与Java对象的自动转换。了解并熟练掌握JAXB,能够提升XML数据处理的效率和代码的可读性。在实际项目中,结合JAXB与XML Schema,可以构建更健壮、易于维护...