我从msmq获取xml文件,并想知道每个节点中元素的数量。我的xml如下所示。 Mode计数应为4,然后我将进行循环以将它们放入集合/列表中。请帮我解决这个问题。
<?xml version="1.0"?>
<Patient xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Mode>
<string>51000153</string>
<string>51002040</string>
<string>51001475</string>
<string>51002670</string>
</Mode>
</Patient>
答案 0 :(得分:2)
OnBackgroundActivated
答案 1 :(得分:0)
这里你是如何计算的
XDocument doc = XDocument.Parse("xmlstr");
int count = doc.Elements("string").Count();
你可以将这些元素放入列表而不需要循环
IEnumerable<XElement> list = doc.Elements("string").ToList();
答案 2 :(得分:0)
您应该使用XmlNodeList
类型和GetElementsByTagName
方法,以下是来自MSDN
的小例子
.............
XmlElement root = doc.DocumentElement; // Doc is `XmlDocument`
XmlNodeList elemList = root.GetElementsByTagName("title");
for (int i=0; i < elemList.Count; i++)
{
Console.WriteLine(elemList[i].InnerXml);
}
了解更多信息,请打开以下链接
答案 3 :(得分:0)
我会使用LINQ完成此任务。
用于计算物品:
XDocument doc = XDocument.Load("xmlfile.xml");
var count = doc.Descendants("Mode")
.Descendants("string")
.Count();
用于将值插入IEnumerable:
XDocument doc = XDocument.Load("xmlfile.xml");
var list = doc.Descendants("Mode")
.Descendants("string")
.Select(node=>node.Value)
.ToList();