0

XML を読み取るために、次の Microsoft サンプル コードを使用しています。

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {

            StringBuilder output = new StringBuilder();

            String xmlString =
                    @"<?xml version='1.0'?>
        <!-- This is a sample XML document -->
        <Items>
          <Item>test with a child element <more/> stuff</Item>
        </Items>";
            // Create an XmlReader
            using (XmlReader reader = XmlReader.Create(new StringReader(xmlString)))
            {
                XmlWriterSettings ws = new XmlWriterSettings();
                ws.Indent = true;
                using (XmlWriter writer = XmlWriter.Create(output, ws))
                {

                    // Parse the file and display each of the nodes.
                    while (reader.Read())
                    {
                        switch (reader.NodeType)
                        {
                            case XmlNodeType.Element:
                                writer.WriteStartElement(reader.Name);
                                break;
                            case XmlNodeType.Text:
                                writer.WriteString(reader.Value);
                                break;
                            case XmlNodeType.XmlDeclaration:
                            case XmlNodeType.ProcessingInstruction:
                                writer.WriteProcessingInstruction(reader.Name, reader.Value);
                                break;
                            case XmlNodeType.Comment:
                                writer.WriteComment(reader.Value);
                                break;
                            case XmlNodeType.EndElement:
                                writer.WriteFullEndElement();
                                break;
                        }
                    }

                }
            }
            var OutputTextBlock.Text = output.ToString();
        }
    }
}

しかし、OutputTextBlock が存在しないというエラーが表示されます。

この前に変数を配置しようとしましたが、それでもエラーが発生します。暗黙的に型指定された変数は初期化する必要があると言います。誰かが私が間違っていることを教えてもらえますか?

これを行う簡単な方法はありますか?

この質問を投稿しました: Windows デスクトップで XML ファイルからデータの 1 つの要素を抽出するにはどうすればよいですか?

しかし、答えは単に XmlReader を使用することでした。どこから始めればよいかよくわかりません。他の質問を回答済みとしてマークしたいのですが、誰も回答を返しませんでした。

4

2 に答える 2

3

あなたのコードの問題は XML とは何の関係もありません。それは、 という変数があることを前提とした単なるサンプルコードですOutputTextBlock。これは、デモ コードがコンソール アプリではなく WPF アプリのコンテキストで記述されたことを示唆しています。

コードを次のように変更した場合:

Console.WriteLine(output.ToString());

その後、あなたは元気になるはずです。

ただし、XDocument代わりに LINQ to XML を使用することを強くお勧めします。XML ドキュメントの読み取りは非常に簡単です。

String xmlString = @"<?xml version='1.0'?>
    <!-- This is a sample XML document -->
    <Items>
      <Item>test with a child element <more/> stuff</Item>
    </Items>";
XDocument doc = XDocument.Parse(xmlString);

その後、ドキュメント内の特定の要素などを見つけることができます。詳細については、MSDN の LINQ to XML の「ルート」ページを参照してください。

于 2013-06-16T07:02:37.220 に答える