C#xml读写操作类

xj7658 2011-08-17 01:06:52
<?xml version="1.0" encoding="utf-8"?>
<project version="3.0" xmlns="http://www.sun3d.com/webmax">
 <files>
<file type="s3d" filepath="文件路径" content="333">demo.s3d</file>
<file type="a3d" filepath="文件路径" content="对文件的简单说明">demo.a3d</file>
<file type="hlsl" filepath="文件路径" content="对文件的简单说明">demo.fx</file>
<file type="jpg" filepath="文件路径" content="对文件的简单说明">tex.jpg</file>
<file type="swf" filepath="文件路径" content="对文件的简单说明">ui.swf</file>
</files>
<prj_info>
<scene filename="场景数据文件名" compress="压缩方法"></scene>
<script type="lua" filename="demo.lua">链接外部lua文件</script>
</prj_info>
<publish>
<!-- 发布标题 -->
<title>Webmax Demo</title>
<!-- 场景发布信息 -->
<scene filename="demo.scene">
</scene>
<!-- 网页发布 -->
<web html="网页文件.html">
</web>
<!-- 发布前的场景优化 -->
<opitimize>优化方法、优化信息bsp信息</opitimize>
<!-- 单机应用程序发布 -->
<app>单机程序需要新开发,独立使用窗口程序,不再依赖于浏览器控件。</app>
<!-- 平台发布信息 -->
<platform>需要加入描述图形api的版本信息</platform>
<licese>
</licese>
</publish>
</project>
用变量来来接受属性值。。和文本值
<file type="s3d" filepath="文件路径" content="333">demo.s3d</file>
type="s3d"    demo.s3d
使用XmlTextReader。
xml文件可能会变的啊。。。。
菜鸟求帮助。。。谢谢各位师兄师姐。。。
...全文
221 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
JH5221314 2011-12-02
  • 打赏
  • 举报
回复
看帖不回,半身不遂!
ly745455 2011-08-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 happy09li 的回复:]
结贴,,给分,,
[/Quote]
看楼主的结贴率就知道结果了。。
孟子E章 2011-08-17
  • 打赏
  • 举报
回复
XmlTextReader是读取用的,不是写文件的,XmlTextWriter 是写文件的
读取xml 用变量接受属性和文本值。??
不知道啥意思。
变量直接用就可以了啊
比如创建节点
String tag = "root"
xmlTextWriter.WriteStartElement(tag );
xj7658 2011-08-17
  • 打赏
  • 举报
回复
大哥你写是好。。但不是我想要的啊。。我郁闷。。
使用XmlTextReader。
读取xml 用变量接受属性和文本值。。。怎么写。。。。。
熙风 2011-08-17
  • 打赏
  • 举报
回复
结贴,,给分,,
熙风 2011-08-17
  • 打赏
  • 举报
回复
 /// <summary>
/// 返回用户操作的SQL语句
/// </summary>
/// <param name="sqlNodeName">XML的操作节点</param>
/// <returns>操作的sql语句</returns>
public string GetXMLPath(string strXMlFileName)
{
string m_strFullPath = "";
Assembly Asm = Assembly.GetExecutingAssembly();
//获取文件的路径
//m_strFullPath = Asm.Location.Substring(0, (Asm.Location.LastIndexOf("\\") + 1)) + "XMLSql.xml";
m_strFullPath = AppDomain.CurrentDomain.BaseDirectory + "XMLLibrary\\" + strXMlFileName;
return m_strFullPath;
}
/// <summary>
/// 获取XML数据库中的数据的方法
/// </summary>
/// <param name="strFilePath">传入文件路径</param>
/// <returns>返回一个数据集</returns>
public DataSet GetAllDataFromXML(string strFilePath)
{
DataSet ds = new DataSet();
FileInfo fileInfo = new FileInfo(strFilePath);
if (fileInfo.Exists)
{
try
{
ds.ReadXml(strFilePath);
}
catch { }
}
else
{
ds = null;
}
if (ds != null)
{
if (ds.Tables[0].Rows.Count < 1)
ds = null;
}
return ds;
}

/// <summary>
/// 获取指定目录下所有子节点的值
/// </summary>
/// <param name="strFileName">文件路径</param>
/// <param name="nodeDir">节点目录</param>
/// <returns></returns>
public Hashtable GetNodeList(string strFileName, string nodeDir)
{
Hashtable strNodeList = new Hashtable();
try
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(strFileName);

XmlNodeList nodeList = xmlDoc.SelectSingleNode(nodeDir).ChildNodes;//获取bookstore节点的所有子节点

foreach (XmlNode xn in nodeList) //遍历所有子节点
{
XmlElement xe = (XmlElement)xn; //将子节点类型转换为XmlElement类型
strNodeList.Add(xe.GetAttribute("id").ToString(), xe.InnerText.Trim());
}

}
catch (Exception)
{

throw;
}
return strNodeList;
}

/// <summary>
/// 获取指定节点的值
/// </summary>
/// <param name="strFileName">文件路径</param>
/// <param name="nodeName">节点名称</param>
/// <param name="value">设置后的值</param>
/// <param name="nodeDir">指定节点所在的节点目录</param>
/// <returns></returns>
public string GetNodeValue(string strFileName, string nodeName, string nodeDir)
{
string value = null;
try
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(strFileName);

XmlNodeList nodeList = xmlDoc.SelectSingleNode(nodeDir).ChildNodes;//获取bookstore节点的所有子节点

foreach (XmlNode xn in nodeList) //遍历所有子节点
{
XmlElement xe = (XmlElement)xn; //将子节点类型转换为XmlElement类型

if (xe.Name == nodeName)
{
value = xe.InnerText.Trim();

break;
}
}
}
catch (Exception exp)
{
throw exp;
}

return value;
}

/// <summary>
/// 获取指定节点下面对应属性的值
/// </summary>
/// <param name="strFileName">文件路径</param>
/// <param name="nodeName">节点名称</param>
/// <param name="nodeDir">指定节点所在的节点目录</param>
/// <param name="attribute">节点对应的属性名称</param>
/// <returns></returns>
public string GetNodeValue(string strFileName, string nodeName, string nodeDir, string attribute)
{
string value = null;
try
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(strFileName);

XmlNodeList nodeList = xmlDoc.SelectSingleNode(nodeDir).ChildNodes;//获取bookstore节点的所有子节点

foreach (XmlNode xn in nodeList) //遍历所有子节点
{
XmlElement xe = (XmlElement)xn; //将子节点类型转换为XmlElement类型

if (xe.Name == nodeName)
{
//value = xe.InnerText.Trim();
value = (xe).Attributes[attribute].Value;
break;
}
}
}
catch (Exception exp)
{
throw exp;
}

return value;
}

/// <summary>
/// 修改指定结点值
/// </summary>
/// <param name="strFileName">文件路径</param>
/// <param name="nodeName">节点名称</param>
/// <param name="value">设置后的值</param>
/// <param name="nodeDir">指定节点所在的节点目录</param>
/// <returns></returns>
public bool UpdateNoteValue(string strFileName, string nodeName, string value, string nodeDir)
{
bool isSucceed = false;
try
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(strFileName);

XmlNodeList nodeList = xmlDoc.SelectSingleNode(nodeDir).ChildNodes;//获取bookstore节点的所有子节点

foreach (XmlNode xn in nodeList) //遍历所有子节点
{
XmlElement xe = (XmlElement)xn; //将子节点类型转换为XmlElement类型

if (xe.Name == nodeName)
{
xe.InnerText = value;

isSucceed = true;
break;
}
}

xmlDoc.Save(strFileName);
}
catch (Exception exp)
{
throw exp;
}

return isSucceed;
}

/// <summary>
/// 修改指定结点值
/// </summary>
/// <param name="strFileName">文件路径</param>
/// <param name="nodeName">节点名称</param>
/// <param name="value">设置后的值</param>
/// <param name="nodeDir">指定节点所在的节点目录</param>
/// <returns></returns>
public bool UpdateNoteValue(string strFileName, string nodeName, string value, string nodeDir, string attribute, string attributeValue)
{
bool isSucceed = false;
try
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(strFileName);

XmlNodeList nodeList = xmlDoc.SelectSingleNode(nodeDir).ChildNodes;//获取bookstore节点的所有子节点

foreach (XmlNode xn in nodeList) //遍历所有子节点
{
XmlElement xe = (XmlElement)xn; //将子节点类型转换为XmlElement类型

if (xe.Name == nodeName)
{
xe.InnerText = value;
(xe).Attributes[attribute].Value = attributeValue;
isSucceed = true;
break;
}
}

xmlDoc.Save(strFileName);
}
catch (Exception exp)
{
throw exp;
}

return isSucceed;
}


/// <summary>
/// 修改指定结点值
/// </summary>
/// <param name="strFileName">文件路径</param>
/// <param name="nodeName">节点名称</param>
/// <param name="value">设置后的值</param>
/// <param name="nodeDir">指定节点所在的节点目录</param>
/// <returns></returns>
public bool UpdateNoteValue(string strFileName, Hashtable hstable, string nodeDir)
{
bool isSucceed = false;
try
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(strFileName);

XmlNodeList nodeList = xmlDoc.SelectSingleNode(nodeDir).ChildNodes;//获取bookstore节点的所有子节点
foreach (DictionaryEntry item in hstable)
{
foreach (XmlNode xn in nodeList) //遍历所有子节点
{
XmlElement xe = (XmlElement)xn; //将子节点类型转换为XmlElement类型

if (xe.Name == item.Key.ToString())
{
xe.InnerText = item.Value.ToString();

isSucceed = true;
break;
}
}
}




xmlDoc.Save(strFileName);
}
catch (Exception exp)
{
throw exp;
}

return isSucceed;
}
熙风 2011-08-17
  • 打赏
  • 举报
回复
 /// <summary>
/// 操作 XML 的类
/// </summary>
public class OperatXML
{
/// <summary>
/// 获取文件处以应用程序中的根目录
/// </summary>
/// <param name="fileName">文件全名称</param>
/// <returns>文件的全路径</returns>
public static string MapPath(string fileName)
{
Assembly Asm = Assembly.GetExecutingAssembly();

string codeBase = Asm.CodeBase;

return codeBase.Substring(8, (codeBase.LastIndexOf("/") - 11)) + fileName;//获取配置文件的路径
}

/// <summary>
/// 返回用户操作的SQL语句
/// </summary>
/// <param name="sqlNodeName">XML的操作节点</param>
/// <returns>操作的sql语句</returns>
public static string GetSQLCommand(string filePath,string fullNodeName)
{
string sql = null;
try
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(filePath);

XmlNode xmlNode = xmlDoc.SelectSingleNode(fullNodeName);
sql = xmlNode.InnerText; //返回节点 的文字
}
catch (Exception err)
{
throw err;
}

return sql;
}
}



110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧