c#和XML的递归函数
本文关键字:递归函数 XML | 更新日期: 2023-09-27 18:08:59
我有一个XML文件:
<node ID="1" query="query 1" dbQuery="aaa">
<node ID="2" query="query 2" dbQuery="bbb"></node>
<node ID="3" query="query 3" dbQuery="aaa"></node>
<node ID="4" query="query 4" dbQuery="ccc"></node>
<node ID="5" query="query 5" dbQuery="ddd">
<node ID="6" query="query 6" dbQuery="eee"></node>
</node>
</node>
,我试着用这个函数来读取:
private void ProcessaSottoNodi(XmlNode node)
{
if (node.HasChildNodes)
{
foreach (XmlNode cNode in node.ChildNodes)
{
Console.WriteLine("{0}", cNode.Name);
foreach (XmlAttribute attr in cNode.Attributes)
Console.WriteLine("{0}", attr.Name + " = " + attr.InnerText);
Console.WriteLine("-------------------------------");
ProcessaSottoNodi(cNode);
}
}
}
,这很好,但如果我通过添加"TextB", "TextC", "TextF"改变XML文件是在错误函数
<node ID="1" query="query 1" dbQuery="aaa">
<node ID="2" query="query 2" dbQuery="bbb">TextB</node>
<node ID="3" query="query 3" dbQuery="ccc">TextC</node>
<node ID="4" query="query 4" dbQuery="ddd">TextD</node>
<node ID="5" query="query 5" dbQuery="eee">
<node ID="6" query="query 6" dbQuery="fff">TextF</node>
</node>
</node>
如何改变我的功能,能够读取属性和InnerText没有错误?
谢谢
要获取xml标签的innerText,您需要做如下操作:
Console.Write(cNode.InnerText);
我添加的代码将打印出cNode的InnerText,其中cNode是您的XmlNode-Object
问题不在控制台中。WriteLine但
foreach (XmlAttribute attr in cNode.Attributes)
InnerText
不是Attribute的属性,而是Node
。