转:简单的 XML 读取

using System;
using System.Xml;
namespace XmlParser
{
 /// <summary>
 
 //----------------------------------网上资料转---
 //XmlReader类用于Xml文件的一般读取操作,以下对这个类做简单介绍:
 //
 //Attributes(属性):
 //listBox: 设置该属性主要为了得到客户端控件以便于显示所读到的文件的内容(这里是ListBox控件)
 //xmlPath: 设置该属性为了得到一个确定的Xml文件的绝对路径
 //
 //Basilic Using(重要的引用):
 //System.Xml: 该命名空间中封装有对Xml进行操作的常用类,本类中使用了其中的XmlTextReader类
 //XmlTextReader: 该类提供对Xml文件进行读取的功能,它可以验证文档是否格式良好,如果不是格式 // 良好的Xml文档,该类在读取过程中将会抛出XmlException异常,可使用该类提供的
 // 一些方法对文档节点进行读取,筛选等操作以及得到节点的名称和值
 //
 //bool XmlTextReader.Read(): 读取流中下一个节点,当读完最后一个节点再次调用该方法该方法返回false
 //XmlNodeType XmlTextReader.NodeType: 该属性返回当前节点的类型
 // XmlNodeType.Element 元素节点
 // XmlNodeType.EndElement 结尾元素节点
 // XmlNodeType.XmlDeclaration 文档的第一个节点
 // XmlNodeType.Text 文本节点
 //bool XmlTextReader.HasAttributes: 当前节点有没有属性,返回true或false
 //string XmlTextReader.Name: 返回当前节点的名称
 //string XmlTextReader.Value: 返回当前节点的值
 //string XmlTextReader.LocalName: 返回当前节点的本地名称
 //string XmlTextReader.NamespaceURI: 返回当前节点的命名空间URI
 //string XmlTextReader.Prefix: 返回当前节点的前缀
 //bool XmlTextReader.MoveToNextAttribute(): 移动到当前节点的下一个属性
 //---------------------------------------------------------------------------------------------------
 /// </summary>
 public class XmlParser
 {
  string xmlFilePath="";
  public XmlParser(string xmlFilePath)
  {
  
this.xmlFilePath=@xmlFilePath;
  }
  //读取指定元素内容(需xml无同名元素)
  public string XmlRead(string nodeName)
  {
   XmlTextReader xr=new XmlTextReader(xmlFilePath);
   string returnValue="";
   bool stopFlag=false;
   while(xr.Read())
   {
    if(xr.Name==nodeName.Trim())
    {
     while(xr.Read())
     {
      if(xr.NodeType==XmlNodeType.Element) break;
      if(xr.NodeType==XmlNodeType.Text)
      {
       returnValue=xr.Value;
       stopFlag=true;
       break;
      }
     }
    }
    if(stopFlag) break;
   }
   xr.Close();
   return returnValue;
  }
 
  //更改指定元素内容
  public bool XmlUpdate(string Xpath,string content)
  {
   bool sucessFlag=false;
   XmlDocument xmlDoc=new XmlDocument();
   xmlDoc.Load(xmlFilePath);
   XmlNode node = xmlDoc.SelectSingleNode(Xpath);
   node.InnerText=content;
   xmlDoc.Save(xmlFilePath);
 
   return sucessFlag;
  
  }
 }
}


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/rolenie/archive/2006/07/19/944094.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TinyXML是一个轻量级的C++库,用于读取和写入XML文件。以下是一个简单的示例,演示如何使用TinyXML读取和写入XML文件: 读取XML文件: ```c++ #include "tinyxml.h" int main() { TiXmlDocument doc("example.xml"); bool loadOkay = doc.LoadFile(); if (!loadOkay) { printf("Could not load file 'example.xml'. Error='%s'. Exiting.\n", doc.ErrorDesc()); return 1; } TiXmlElement* root = doc.FirstChildElement(); if (root == NULL) { printf("Failed to load file: No root element."); doc.Clear(); return 1; } TiXmlElement* element = root->FirstChildElement(); while (element != NULL) { const char* value = element->Value(); const char* text = element->GetText(); printf("%s: %s\n", value, text); element = element->NextSiblingElement(); } doc.Clear(); return 0; } ``` 这个示例假设存在一个名为example.xmlXML文件,并且它有一个根元素和一些子元素。程序读取XML文件并迭代每个子元素,打印其名称和文本内容。 写入XML文件: ```c++ #include "tinyxml.h" int main() { TiXmlDocument doc; TiXmlDeclaration* decl = new TiXmlDeclaration("1.0", "", ""); doc.LinkEndChild(decl); TiXmlElement* root = new TiXmlElement("root"); doc.LinkEndChild(root); TiXmlElement* element = new TiXmlElement("element"); element->LinkEndChild(new TiXmlText("text")); root->LinkEndChild(element); doc.SaveFile("example.xml"); return 0; } ``` 这个示例创建了一个新的XML文件,并在其中添加了一个根元素和一个子元素。最后,程序将XML文件保存到名为example.xml的文件中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值