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
}
分享到:
相关推荐
java一键xml转map,一键map转xml工具类,代码已封装好,一个方法即可将两种格式文本互转,注意是互转,网上很多只有xml转map,并不支持map转xml
java通用解析XML工具类
XmlUtils JS操作XML工具类 ** * 加载xml文件,参数: * @param {string} xmlPath:加载的xml文件路径; * @return {Object} true 正常加载; false 加载失败 *
xml工具类
* 本类是专门解析XML文件的,主要用于为系统读取自己的配置文件时提供最方便的解析操作 * @author HX * */ public class XmlManager { /** * 得到某节点下某个属性的值 * @param element 要获取属性的...
c++读取xml工具类TinyXml
java Dom4j 无敌连环解析XML工具类
提供2个方法: (1)XMLUtil.getValue(String tag,String attr); 获取指定tag的指定attr的值。...两个函数的返回值是ArrayList,每个XMLResult包括获得的值/内容,对应tag在整个xml结构中的位置。 复出了,请大家支持。
json与xml互相转换工具类
基于安卓的XML工具类
java的xml和json相互转换工具类,亲测直接用
这是一个xml工具类,解析jar包用的是dom4j-1.6.1; 主要方法: 1.根据节点名称通过循环遍历获取对应的节点; 2.根据节点名称通过循环遍历获取对应的底层节点集合;
使用这个工具类库可以很方便读取xml文件配置的相关属性,在游戏与软件开发过程很有用处!
实现的一个简单的基于java 的,可以在xml和json之间相互转换的工具类,因为实在没有积分了,所以要点积分,希望理解~
通过实现json_jar包,进行再次封装,实现生成json数据和xml数据,只需要简单的传几个参数即可!
XML与实体类的相互转换工具,util是工具类,MyTest包含实体类转xml字符串以及XML字符串转实体类的方法,需要引入外部依赖或jar包,亲测可用
在java.beans包中,有两个好东西,XMLEncoder和XMLDecoder。从XML存取对象真是太费力气啦。做了小工具类,以后可以用用了。本文介绍了这两个可以把JAVA对象序列化保存为XML文件的工具类。
NULL 博文链接:https://lxjtsoftware.iteye.com/blog/566852
调用这个工具类的方法,根据方法对应的参数,传入要生成XML的实体类名点class和自定义一个表名,可以单个、也可以一对一、一对多的关系。
本人实现的基于Pull解析器的XML解析生成工具类,将XML文件转换成对象,将对象转换成XML文件并保存,全部通用,不需要与任何对象进行关联