C# 从xml节点获取子节点
我有如下xml:C# 从xml节点获取子节点,c#,xml,C#,Xml,我有如下xml: 10748 164754 照片 302989460 我需要检查我的中是否有。 我收到的所有帖子都是这样的: XmlNodeList posts=XmlDoc.GetElementsByTagName(“post”); foreach(帖子中的xmlnodexnode) { //我得查一下 } 如果帖子中没有节点,我想取而代之的是它的。要检查“帖子”中是否有节点,请执行以下操作: if(posts.Count == 0) { // No child nodes! }
10748
164754
照片
302989460
我需要检查我的
中是否有
。
我收到的所有帖子都是这样的:
XmlNodeList posts=XmlDoc.GetElementsByTagName(“post”);
foreach(帖子中的xmlnodexnode)
{
//我得查一下
}
如果帖子中没有
节点,我想取而代之的是它的
。要检查“帖子”中是否有节点,请执行以下操作:
if(posts.Count == 0)
{
// No child nodes!
}
可以在启动循环之前执行此操作。如果从
XmlDocument
更改为XElement
,则可以使用LINQ查询来获取附件
节点的数量
//load in the xml
XElement root = XElement.Load("pathToXMLFile"); //load from file
XElement root = XElement.Parse("someXMLString"); //load from memory
foreach (XElement post in root.Elements("post"))
{
int numOfAttachNodes = post.Elements("attachments").Count();
if(numOfAttachNodes == 0)
{
//there is no attachment node
}
else
{
//something if there is an attachment node
}
}
您可以尝试linq查询,如下所示
var result = XmlDoc.Element("response")
.Elements("post").Select(item => item.Element("attachments")).ToList();
foreach(var node in result)
{
}
你想要什么?元素或值的列表?-1。这会检查子节点的总数,但不会区分
附件
节点和文本
节点。问题是他的现有变量使用XmlDocument
而不是XElement
。这就是为什么我建议使用后者。