首页 > 解决方案 > 如何通过标签存储 XML 部分

问题描述

我想存储一个XML字符串的原始部分,按每个根元素的基数分割<ROW NUMBER="1">,然后分配给一个字符串。

我可以知道怎么做吗?

<?xml version="1.0"?>
<ROWS>
  <ROW NUMBER="1">
    <PersonID>P1</PersonID>
    <PersonName>JAMES</PersonName>
  </ROW>
  <ROW NUMBER="2">
    <PersonID>P2</PersonID>
    <PersonName>MARY</PersonName>
  </ROW>
</ROWS>

预期结果:

string person1 = "<PersonID>P1</PersonID><PersonName>JAMES</PersonName>"

string person2 = "<PersonID>P2</PersonID><PersonName>MARY</PersonName>"

谢谢你。

标签: c#xml

解决方案


我通常使用这样的字典:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;

namespace ConsoleApplication1
{
    class Program
    {
        const string FILENAME = @"c:\temp\test.xml";
        static void Main(string[] args)
        {
            XDocument doc = XDocument.Load(FILENAME);

            Dictionary<string, List<XElement>> dict = doc.Descendants("ROW")
                .GroupBy(x => (string)x.Element("PersonID"), y => y)
                .ToDictionary(x => x.Key, y => y.Descendants().ToList());

 
        }
    }
}

推荐阅读