2012-03-30 81 views
-1

认为我的源文件看起来像这样。如何读取XML文档并在c中显示字符串输出#

 <Content xmlns="uuid:4522eb85-0a47-45f9-8e2b-1x82c78xx920"> 
      <first>Hello World.This is Fisrt field</first> 
      <second>Hello World.This is second field</second> 
    </Content> 

我想写一个代码,它从一个位置读取这个xml文档并将其显示为字符串。

say name of the xml file is helloworld.xml. 
    Location: D:\abcd\cdef\all\helloworld.xml. 

我试过以下,但我无法做到这一点。

  XmlDocument contentxml = new XmlDocument(); 
      contentxml.LoadXml(@"D:\abcd\cdef\all\helloworld.xml"); 
      Response.Write("<BR>" + contentxml.ToString()); 

Response.write没有显示任何内容。纠正我,如果我错过了任何事情。它没有创建任何组件,错误即将到来。

我也试过,

  XmlDocument contentxml = new XmlDocument(); 
      try 
      { 
       contentxml.LoadXml(@"D:\abcd\cdef\all\helloworld.xml"); 
      } 
      catch (XmlException exp) 
      { 
       Console.WriteLine(exp.Message); 
      } 
      StringWriter sw = new StringWriter(); 
      XmlTextWriter xw = new XmlTextWriter(sw); 
      contentxml.WriteTo(xw); 
      Response.Write("<BR>" + sw.ToString()); 

,但我没有找到任何输出。

我想从一个位置读取一个XML文件,并以字符串形式显示它。

任何人都可以帮忙。

谢谢, Muzimil。

回答

4

您需要OuterXml属性:

Response.Write("<BR>" + contentxml.OuterXml); 

而且您是要装入文件不是XML所以使用

contentxml.Load(@"D:\abcd\cdef\all\helloworld.xml"); 

代替

contentxml.LoadXml(@"D:\abcd\cdef\all\helloworld.xml"); 
0

试试这个

XmlTextReader reader = new XmlTextReader (@"D:\abcd\cdef\all\helloworld.xml"); 
while (reader.Read()) 
{ 
    Console.WriteLine(reader.Name); 
} 
Console.ReadLine(); 
1

你真的要在所有反序列化XML?为什么不把它作为文本文件读取?喜欢的东西..

String text = File.ReadAllText(@"D:\abcd\cdef\all\helloworld.xml"); 
Response.Write(text); 

有了相应的错误处理明显..

1

我会尝试使用XDocument类:

//load the document from file 
var doc = XDocument.Load("..."); //== path to the file 

//write the xml to the screen 
Response.Write(doc.ToString()); 

如果你想使用XmlDocument相反,你会想使用Load而不是LoadXml

0
String text = File.ReadAllText(Server.MapPath("~/App_Data/sample.xml")); 
txtData.Text = text;