CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

关于xml与string的操作问题

楼主cdo(Everything has a favourable turn)2006-03-03 16:32:51 在 .NET技术 / C# 提问

我现在有一个string   =   @"<APEList   Version='1.0'><APE   type='0x30'><parameter   id='1'><value>Management   History   policy   returned   an   error.</value></parameter></APE></APEList>".(这只是例子,原字符串比这个复杂得多。)  
   
  因为想把其中的value中的innerText后加上一些字符变成类似"Management   History   policy   returned   an   error.   GOOD",所以我觉得把这段string当成xml来操作的话,可能会方便些(取到Node,修改值)。  
   
  最后,我想得到的修改后的字符串:  
  string   =   @"<APEList   Version='1.0'><APE   type='0x30'><parameter   id='1'><value>Management   History   policy   returned   an   error.GOOD</value></parameter></APE></APEList>".  
   
  请问要怎么做?也就是把string转成xml文档,然后修改,然后再拿回string. 问题点数:20、回复次数:3Top

1 楼xinyangt(信仰t)回复于 2006-03-03 17:12:09 得分 15

下面的示例使用   XmlTextWriter   创建   XML   输出。  
   
  [Visual   Basic]  
  Shared   Sub   WriteQuote(writer   As   XmlWriter,   symbol   As   String,   price   As   Double,   change   As   Double,   volume   As   Long)  
        writer.WriteStartElement("Stock")  
        writer.WriteAttributeString("Symbol",   symbol)  
        writer.WriteElementString("Price",   XmlConvert.ToString(price))  
        writer.WriteElementString("Change",   XmlConvert.ToString(change))  
        writer.WriteElementString("Volume",   XmlConvert.ToString(volume))  
        writer.WriteEndElement()  
  End   Sub   'WriteQuote  
   
  Public   Shared   Sub   Main()  
        Dim   writer   As   New   XmlTextWriter(Console.Out)  
        writer.Formatting   =   Formatting.Indented  
        WriteQuote(writer,   "MSFT",   74.125,   5.89,   69020000)  
        writer.Close()  
  End   Sub   'Main  
   
  [C#]  
  static   void   WriteQuote(XmlWriter   writer,   string   symbol,    
                                  double   price,   double   change,   long   volume)  
  {  
        writer.WriteStartElement("Stock");  
        writer.WriteAttributeString("Symbol",   symbol);  
        writer.WriteElementString("Price",   XmlConvert.ToString(price));  
        writer.WriteElementString("Change",   XmlConvert.ToString(change));  
        writer.WriteElementString("Volume",   XmlConvert.ToString(volume));  
        writer.WriteEndElement();  
  }  
   
  public   static   void   Main(){  
          XmlTextWriter   writer   =   new   XmlTextWriter(Console.Out);  
          writer.Formatting   =   Formatting.Indented;  
          WriteQuote(writer,   "MSFT",   74.125,   5.89,   69020000);  
          writer.Close();  
  }  
   
  输出  
   
  <Stock   Symbol="MSFT">  
              <Price>74.125</Price>  
              <Change>5.89</Change>  
              <Volume>69020000</Volume>  
  </Stock>  
   
   
  以上是msdn中的例子Top

2 楼xinyangt(信仰t)回复于 2006-03-03 17:27:05 得分 0

 
  你要修改的是时候不用   把整个xml拿回string   只要通过找到对应node   的   InnerText值就ok了  
  private   string   filename   =   aaa.xml;  
  private   XmlDocument   XmlDoc;  
   
        //读取                          
  string   result   =   null;  
  XmlDoc.Load(filename);  
   
  XmlNode   n   =   XmlDoc.DocumentElement.SelectSingleNode(xPath);    
  if(n   !=   null)  
  {  
      result   =   n.InnerText;  
  }  
   
   
   
   
  //写入  
  string   xPath,string   values  
    XmlDoc.Load(filename);  
  XmlNode   node_w   =   XmlDoc.DocumentElement.SelectSingleNode(xPath);    
  if(node   !=   null)  
  {    
  node_w.InnerText   =   values;  
  XmlTextWriter   writer   =   new   XmlTextWriter(filename,null);  
  writer.Formatting   =   Formatting.Indented;  
  XmlDoc.Save(writer);  
  writer.Close();  
  writer   =   null;  
  }  
                                   
  Top

3 楼lovefootball(蟑螂(生活就是扯淡--做人要放低姿态))回复于 2006-03-03 17:43:19 得分 5

string   s   =   @"<APEList   Version='1.0'><APE   type='0x30'><parameter   id='1'><value>Management   History   policy   returned   an   error.</value></parameter></APE></APEList>";  
  XmlDocument   doc   =   new   XmlDocument();  
  doc.LoadXml(s);  
  XmlNode   node   =   doc.SelectSingleNode("/APEList/APE/parameter/value");  
  node.InnerText   =   "111";//修改你想要的结果,  
  Console.WriteLine(doc.OuterXml);//输出最后的字符串Top

相关问题

  • ???C#操作xml?!!
  • java 操作XML
  • XML数据库的连接与操作
  • 怎样操作xml
  • 用 ado 操作xml
  • 在线操作xml?
  • 如何操作xml?
  • 操作xml問題?
  • 对XML的操作?
  • 对xml的操作

关键词

  • 修改
  • management
  • xml
  • null
  • writer
  • writequote
  • xmlconvert
  • 字符串
  • xmltextwriter
  • xmldoc

得分解答快速导航

  • 帖主:cdo
  • xinyangt
  • lovefootball

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo