如何读取XML文档并在c#中将输出显示为字符串

时间:2012-03-30 15:05:17

标签: c# asp.net xmldocument xmlreader

考虑我的源文件是这样的。

        <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。

6 个答案:

答案 0 :(得分:4)

您需要OuterXml属性:

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

此外,您正在加载文件而不是xml,因此请使用

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

而不是

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

答案 1 :(得分:1)

你真的必须反序列化XML吗?为什么不把它作为文本文件阅读?像...这样的东西。

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

显然有适当的错误处理..

答案 2 :(得分: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

答案 3 :(得分:0)

如果您只想将文件写入输出,则可以执行Response.WriteFile

答案 4 :(得分:0)

试试这个

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

答案 5 :(得分:0)

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