gpt4 book ai didi

c# - 使用c#循环遍历xml文件中的所有节点

转载 作者:数据小太阳 更新时间:2023-10-29 02:03:39 25 4
gpt4 key购买 nike

我有一个 xml 文档,其设置与此类似:

<invoice>
<IssueDate>2015-09-07</IssueDate>
<InvoiceType>380<InvoiceType>
<AccountingSupplierParty>
<Party>
<EndpointID></EndpointID>
<PartyName>
<Name>Company test</Name>
</PartyName>
</Party>
</AccountingSupplierParty>
</invoice>

这只是整个 xml 文档的一小部分,只是为了展示文件的外观。

我也想检查所有元素是否有空值,例如本例中的 EndpointID(我需要用 NA 替换空值)。

这是我目前所拥有的:

public static void AddToEmptyElements()
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("testXml.xml");
XmlNodeList nodes = xmlDoc.DocumentElement.ChildNodes;
foreach (XmlNode node in nodes)
{
Console.WriteLine(node.Name);
}
}

但是,这段代码只会遍历根节点的子节点,而不是所有的孙节点(或曾孙节点),例如 <Party><EndpointID>元素。如何在循环中包含这些元素?

最佳答案

我现在不在测试代码的环境中,但是否可以编写递归方法来进一步循环节点?

像这样(未经测试的代码):

private static void handleNode(XmlNode node)
{
if(node.HasChildNodes)
{
foreach(XmlNode child in node.ChildNodes)
{
handleNode(child);
}
}
else
Console.WriteLine(node.Name);
}

然后调用此方法代替您的 Console.WrintLine()

关于c# - 使用c#循环遍历xml文件中的所有节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32690299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com