0

長い文字列を解析しようとしています (実際には xml ファイルです)。

私は部分文字列に精通していますが、この長い文字列 (xml ファイル) を反復処理し、その部分文字列を配列に割り当てる方法がわかりません。

これは単純な問題だと確信していますが、困惑しています。

4

2 に答える 2

1

オブジェクトのリストを解析したい場合は、LINQ TO XMLを使用することをお勧めします。

ここで、この小さなサンプル:

まず私のXMLファイル

<?xml version="1.0" encoding="utf-8" ?>
<People>
  <Person>
    <Name>Luis</Name>
    <LastName>Laurent</LastName>
    <Age>24</Age>
  </Person>
  <Person>
    <Name>Juan</Name>
    <LastName>Perez</LastName>
    <Age>24</Age>
  </Person>
  <Person>
    <Name>Karla</Name>
    <LastName>Gutierrez</LastName>
    <Age>24</Age>
  </Person>
</People>

次に、私の.Net C#コード

namespace Demo.Stackoverflow
{
    using System;
    using System.Linq;
    using System.Xml.Linq;

    public class Person
    {
        public string Name { get; set; }  
        public string LastName { get; set; }
        public int Age { get; set; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            ReadXML();
            Console.ReadLine();
        }

        private static void ReadXML()
        {
            string path = AppDomain.CurrentDomain.BaseDirectory + "..\\..\\Resources\\File.xml";
            XDocument doc = XDocument.Load(path);

            var People = (from people in doc.Descendants("Person")
                            select new Person()
                            {
                                Name = null != people.Descendants("Name").FirstOrDefault() ?
                                         people.Descendants("Name").First().Value : string.Empty,

                                LastName = null != people.Descendants("LastName").FirstOrDefault() ?
                                         people.Descendants("LastName").First().Value : string.Empty,

                                Age = null != people.Descendants("Age").FirstOrDefault() ?
                                         Convert.ToInt32(people.Descendants("Age").First().Value) : 0
                            }).ToList();
        }
    }
}
于 2012-12-04T20:18:41.243 に答える
0

もう 1 つのオプションは、XML をクラスに逆シリアル化することです。その後、さまざまなロジックのニーズに対応するメソッドとプロパティを作成できます。

于 2012-12-04T18:21:48.317 に答える