9
<root> 
<row> 
  <linksclicked>http://www.examiner.com/</linksclicked> 
  <clickedcount>34</clickedcount>
</row> 
<row> 
  <linksclicked>http://www.sample123.com</linksclicked> 
  <clickedcount>16</clickedcount>
</row> 
<row> 
  <linksclicked>http://www.testing123.com</linksclicked> 
  <clickedcount>14</clickedcount>
</row> 
</root>

上記のようなxmlが文字列にあり、以下のようなクラスがあります

public class Row
{
    public string linksclicked { get; set; }
    public int clickedcount { get; set; }
}

XML文字列を行オブジェクトのリストに変換するにはどうすればよいですか

4

5 に答える 5

14

LINQ to XML を使用できます。

var doc = XDocument.Parse(xmlString);

var items = (from r in doc.Root.Elements("row")
             select new Row()
                 {
                     linksclicked = (string) r.Element("linksclicked"),
                     clickedcount = (int) r.Element("clickedcount")
                 }).ToList();
于 2013-04-19T05:52:49.930 に答える
0

このコードを試すことができます

string xml = "<Ids><id>1</id><id>2</id></Ids>";   
ArrayList list = new ArrayList();    
XmlDocument doc = new XmlDocument();  
doc.LoadXml(xml);    
XmlNodeList idNodes = doc.SelectNodes("Ids/id");  
foreach (XmlNode node in idNodes)
    list.Add(node.InnerText);
于 2013-04-19T05:50:41.183 に答える
0

XMLSerializer を使用して List 型のプロパティをデシリアライズし、タグ名をルートとしてプロパティに割り当てることができます。

ただし、ファイルの先頭に XML タグが必要です。

U は、XElement を使用して独自の XML パーサーを作成できます。行ノードのリストを作成し、それぞれを解析してリストにロードできます。

XElement rootNode = XElement.Load(filepath);

List<XElement> nodes = rootNode.Descendants().Where(t=> t.Name.ToString().Equals("row"));

タグごとに、オブジェクト行を作成し、子タグに基づいてそのプロパティを埋めることができます。それが役に立てば幸い

于 2013-04-19T05:52:18.740 に答える