[英]Parse an XML document using C# LINQ
我正在嘗試解析此 XML 文檔-
<?xml version="1.0" encoding="UTF-8"?>
<Data xmlns:data="report">
<Report>
<GroupName Descriptor="Administrator">
<ID type="ID">1</ID>
<ID type="Group">Administrator</ID>
</GroupName>
<Members Name="12345 / john smith ">
<ID type="ID">1</ID>
<ID type="UserID">12345</ID>
<ID type="UserName">jsmith</ID>
</Members>
</Report>
<Report>
<GroupName Descriptor="User">
<ID type="ID">1</ID>
<ID type="Group">User</ID>
</GroupName>
<Members Name="14568/Bob smith">
<ID type="ID">1</ID>
<ID type="UserID">14568</ID>
<ID type="UserName">bsmith</ID>
</Members>
<Members Name="14597/Tommy lee">
<ID type="ID">1</ID>
<ID type="UserID">14597</ID>
<ID type="UserName">tlee</ID>
</Members>
</Report>
</Data>
我想要用戶列表,例如 -
jsmith Administrator
bsmith User
tlee User
我試過 Xpath 和后代都沒有給我我想要的結果
嘗試以下操作:
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);
List<Group> groups = doc.Descendants("Report").Select(x => new Group()
{
groupName = (string)x.Element("GroupName").Attribute("Descriptor"),
userNames = x.Elements("Members").Select(y => (string)y.Attribute("Name")).ToArray()
}).ToList();
}
}
public class Group
{
public string groupName { get; set; }
public string[] userNames { get;set;}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.