Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获取xml节点中的元素计数?_C#_Xml - Fatal编程技术网

C# 如何获取xml节点中的元素计数?

C# 如何获取xml节点中的元素计数?,c#,xml,C#,Xml,我从msmq获取xml文件,希望知道每个节点中元素的计数。我的xml如下所示。模式计数应该是4,然后我将执行for循环以将它们放入集合/列表中。请在这个问题上帮助我 <?xml version="1.0"?> <Patient xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Mode> <s

我从msmq获取xml文件,希望知道每个节点中元素的计数。我的xml如下所示。模式计数应该是4,然后我将执行for循环以将它们放入集合/列表中。请在这个问题上帮助我

<?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>

51000153
51002040
51001475
51002670

这是您是如何得到计数的

XDocument doc = XDocument.Parse("xmlstr");
int count = doc.Elements("string").Count();
您可以不循环地将这些元素放入列表中

IEnumerable<XElement> list = doc.Elements("string").ToList();
IEnumerable list=doc.Elements(“字符串”).ToList();

这是您是如何得到计数的

XDocument doc = XDocument.Parse("xmlstr");
int count = doc.Elements("string").Count();
您可以不循环地将这些元素放入列表中

IEnumerable<XElement> list = doc.Elements("string").ToList();
IEnumerable list=doc.Elements(“字符串”).ToList();

您应该使用
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);
} 
。。。。。。。。。。。。。
xmlementroot=doc.DocumentElement;//Doc是XmlDocument`
XmlNodeList elemList=root.GetElementsByTagName(“标题”);
for(int i=0;i
有关更多信息,请打开下面的链接


您应该使用
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);
} 
。。。。。。。。。。。。。
xmlementroot=doc.DocumentElement;//Doc是XmlDocument`
XmlNodeList elemList=root.GetElementsByTagName(“标题”);
for(int i=0;i
有关更多信息,请打开下面的链接


我将使用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();

我将使用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();

这里有点混合的方法。可以使用Element()/Elements()指定完整路径,也可以在此处使用一个子体()混合方法。使用Element()/Elements()指定完整路径,或使用一个子体()