3
這是我的XML結構:如何獲取c#xmlReader中XML節點子項的數量?
<classes>
<Base Name="node1">
<Book Name="child01" CoverArtName="C102.jpg" CoverBaseFolder="" Tooltip="" PluginBook=""/>
<Book Name="child02" CoverArtName="C102.jpg" CoverBaseFolder="" Tooltip="" PluginBook=""/>
<Book Name="child03" CoverArtName="C102.jpg" CoverBaseFolder="" Tooltip="" PluginBook=""/>
</Base >
<Base Name="node2">
<Book Name="child01" CoverArtName="C102.jpg" CoverBaseFolder="" Tooltip="" PluginBook=""/>
<Book Name="child02" CoverArtName="C102.jpg" CoverBaseFolder="" Tooltip="" PluginBook=""/>
</Base >
<Base Name="node3">
</Base >
</classes>
我怎麼可以得到的XmlReader每個節點的孩子的數量?
更新: 我讀我的XML與THES代碼:
列表base7 =新名單();
XmlReader xmlReader = XmlReader.Create("Books.xml");
while (xmlReader.Read())
{
if ((xmlReader.NodeType == XmlNodeType.Element) && (xmlReader.Name == "Base"))
{
if (xmlReader.HasAttributes)
Console.WriteLine(xmlReader.GetAttribute("Name") + ": " + xmlReader.GetAttribute("CoverBaseFolder"));
//Base Name
base7.Add(new Bases() { BaseName = xmlReader.GetAttribute("Name"), Basefolder = xmlReader.GetAttribute("CoverBaseFolder") });
}
}
mainbox.ItemsSource = base7;
輸出是一個列表項,其中節點的名稱和同一節點的子元素的數量。
var list = XElement.Load("test.xml")
.Elements("Base")
.Select(e => new
{
Name = e.Attribute("Name").Value,
Count = e.Elements().Count()
})
.ToList();
但是,如果你想使用XmlReader
,例如,使用XML不適合在內存中運行,代碼是更繁瑣:
你有代碼可以讀取嗎? – Sal
您能否爲您的示例提供預期的輸出? –
我已添加了用於閱讀XML的代碼。 – hemarn