Как читать XML-документ и отображать вывод в виде строки в C # - PullRequest
0 голосов
/ 30 марта 2012

считают, что мой исходный файл выглядит следующим образом.

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

4 голосов
/ 30 марта 2012

Вам необходимо OuterXml свойство:

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

Также вы загружаете файл не xml, поэтому используйте

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

вместо

  contentxml.LoadXml(@"D:\abcd\cdef\all\helloworld.xml");
1 голос
/ 30 марта 2012

Я бы попробовал использовать класс 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.

1 голос
/ 30 марта 2012

Вы действительно должны десериализовать XML вообще? Почему бы просто не прочитать его как текстовый файл? Нечто подобное ..

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

При соответствующей обработке ошибок, очевидно ..

0 голосов
/ 28 июля 2012
String text = File.ReadAllText(Server.MapPath("~/App_Data/sample.xml"));
txtData.Text = text;
0 голосов
/ 30 марта 2012

попробуйте

XmlTextReader reader = new XmlTextReader (@"D:\abcd\cdef\all\helloworld.xml");
while (reader.Read()) 
{
    Console.WriteLine(reader.Name);
}
Console.ReadLine();
0 голосов
/ 30 марта 2012

Если вы хотите просто записать файл в вывод, вы можете сделать Response.WriteFile .

...