我正在尝试解析一个长字符串(它实际上是一个xml文件)。
我熟悉substring但我不知道如何遍历这个长字符串(xml文件)并将其子字符串分配到数组中。
我完全相信这是一个简单的问题,但我很难过。
答案 0 :(得分:0)
另一个选择是将XML反序列化为类。然后,您可以创建方法和属性来处理各种逻辑需求。
答案 1 :(得分:0)
如果你想解析一个对象列表,我建议你使用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();
}
}
}