0

次の XML ファイルがあります。

私がやろうとしているのは、ファイルにあるのと同じように、テキストを複数行のテキストボックスに表示することだけです。Microsoft のサイトでコードを見つけて、動作するように少し変更しましたが、まだ十分ではありません。

<Employees>
  <Employee>
    <Name>Davolio, Nancy</Name>
    <Title>Sales Representative</Title>
    <BirthDay>12/08/1948</BirthDay>
    <HireDate>05/01/1992</HireDate>
  </Employee>
  <Employee>
    <Name>Fuller, Andrew</Name>
    <Title>Vice President, Sales</Title>
    <BirthDay>02/19/1952</BirthDay>
    <HireDate>08/14/1992</HireDate>
  </Employee>
  <Employee>
    <Name>Leverling, Janet</Name>
    <Title>Sales Representative</Title>
    <BirthDay>08/30/1963</BirthDay>
    <HireDate>04/01/1992</HireDate>
  </Employee>

コード:

XmlTextReader reader = new XmlTextReader("Employees.xml");

string contents = "";
while (reader.Read())
{
    reader.MoveToContent();
    if (reader.NodeType == System.Xml.XmlNodeType.Element)
        contents += "<" + reader.Name + ">\n ";
    if (reader.NodeType == System.Xml.XmlNodeType.Text)
        contents += reader.Value + "</" + reader.Name+ ">\n";

}

//Console.Write(contents);

txtStats.Text = "File Creation Time = " + File.GetCreationTime(Server.MapPath("../XMLFiles/Employees.xml")).ToString()
    + "\n" + "File Last Access Time = " + File.GetLastAccessTime(Server.MapPath("../XMLFiles/Employees.xml")).ToString()
    + "\n" + "File Last Write Time = " + File.GetLastWriteTime(Server.MapPath("../XMLFiles/Employees.xml")).ToString()
    + "\n"
    + "\n"
    + contents.ToString();

これにより、次のことがわかります。

<Employees>
 <Employee>
 <Name>
 Davolio, Nancy</>
<Title>
 Sales Representative</>
<BirthDay>
 12/08/1948</>
<HireDate>
 05/01/1992</>
<Employee>
 <Name>
 Fuller, Andrew</>
<Title>
 Vice President, Sales</>
<BirthDay>
 02/19/1952</>
<HireDate>
 08/14/1992</>
<Employee>
 <Name>
 Leverling, Janet</>
<Title>
 Sales Representative</>
<BirthDay>
 08/30/1963</>
<HireDate>
 04/01/1992</>

これを行うためのより良い方法があれば、代替案を聞いてうれしいです.

4

1 に答える 1

1

ファイルをそのまま表示するだけの場合は、xml として解析する必要はありません。File.ReadAllTextを使用するだけです:

textBox1.Text = File.ReadAllText("Employees.xml");

または、フォーマットしたい場合は、次のXDocumentように を介して実行するのが簡単な方法です。

textBox1.Text = XDocument.Load("Employees.xml").ToString();
于 2013-07-07T04:25:40.237 に答える