C#判断xml节点下是否有子节点
<?xmlversion="1.0"encoding="GBK"?><body><Order><Name>546</Name></Order><Result>asb</R...
<?xml version="1.0" encoding="GBK"?>
<body>
<Order>
<Name>546</Name>
</Order>
<Result>asb</Result>
</body>
</ysepay>
上面是要xml解析的例子
下面是我解析的代码
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(strXML);
XmlElement xmlElem = xmlDoc.DocumentElement;//获取根节点
XmlNodeList bodyNode = xmlElem.GetElementsByTagName("body");//取得节点名为body的XmlNode集合
XmlNodeList body = xmlElem.SelectNodes("body");
foreach (XmlNode node in bodyNode)
{
XmlNodeList childList = node.ChildNodes; //取得body下的子节点集合
foreach (XmlNode childnode in childList)
{
int result = childnode.ChildNodes.Count;
XmlNodeList contentList = childnode.ChildNodes;
}
}
其中int result = childnode.ChildNodes.Count;循环到Result节点的时候返回值还是1,他把asb这个值当做一个子节点计算。使用childnode.HasChildNodes也是返回true。为什么这样解析会把asb这个节点值当做一个子节点?我要如何判断该节点下是否有子节点 展开
<body>
<Order>
<Name>546</Name>
</Order>
<Result>asb</Result>
</body>
</ysepay>
上面是要xml解析的例子
下面是我解析的代码
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(strXML);
XmlElement xmlElem = xmlDoc.DocumentElement;//获取根节点
XmlNodeList bodyNode = xmlElem.GetElementsByTagName("body");//取得节点名为body的XmlNode集合
XmlNodeList body = xmlElem.SelectNodes("body");
foreach (XmlNode node in bodyNode)
{
XmlNodeList childList = node.ChildNodes; //取得body下的子节点集合
foreach (XmlNode childnode in childList)
{
int result = childnode.ChildNodes.Count;
XmlNodeList contentList = childnode.ChildNodes;
}
}
其中int result = childnode.ChildNodes.Count;循环到Result节点的时候返回值还是1,他把asb这个值当做一个子节点计算。使用childnode.HasChildNodes也是返回true。为什么这样解析会把asb这个节点值当做一个子节点?我要如何判断该节点下是否有子节点 展开
展开全部
XmlNodeList bodyNode = xmlElem.GetElementsByTagName("肆顷body"旅雹州拆蔽);
if (bodyNode.Count > 0)
if (bodyNode.Count > 0)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以用NodeType过滤
追问
Order节点和Result节点的NodeType都是Element,这无法判断过滤啊
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询