c# - 连接 XML 节点数据

标签 c# .net xml

我的 XML 看起来像这样

<BoxResult>
<DocumentType>BCN</DocumentType>
<DocumentID>BCN_20131113_1197005001#854@11XEZPADAHANDELC</DocumentID>
<DocumentVersion>1</DocumentVersion>
<ebXMLMessageId>CENTRAL_MATCHING</ebXMLMessageId>
<State>FAILED</State>
<Timestamp>2013-11-13T13:02:57</Timestamp>
<Reason>
    <ReasonCode>efet:IDNotFound</ReasonCode>
    <ReasonText>Unknown Sender</ReasonText>
</Reason>
<Reason>
    <ReasonCode>efet:IDNotFound</ReasonCode>
    <ReasonText>Unknown Receiver</ReasonText>
</Reason>
</BoxResult>

在我的 C# 代码中,我需要解析 XML 并连接原因文本数据。

基本上,我需要输出为未知发件人;未知接收者

我尝试了以下代码,但没有得到所需的输出

XmlNodeList ReasonNodeList = xmlDoc.SelectNodes(/BoxResult/Reason);              
foreach (XmlNode xmln in ReasonNodeList)
{
     ReasonText = ReasonText + ";" + xmlDoc.SelectSingleNode(/BoxResult/Reason/ReasonText).InnerXml.ToString();
}
if (ReasonText != " ")
{
     ReasonText = ReasonText.Substring(1);
}

我从这段代码中得到的输出是未知发件人;未知发件人

它没有显示未知接收者

请提出建议,您的帮助将会很有用

最佳答案

您始终使用同一节点来检索数据。 xmlDoc始终被调用(即第一个 <Reason> 节点),而不是每个目标节点。

XmlNodeList ReasonNodeList = xmlDoc.SelectNodes("/BoxResult/Reason/ReasonText");  //change here            
foreach (XmlNode xmln in ReasonNodeList)
{
     ReasonText = ReasonText + ";" + xmln.InnerXml.ToString(); //change here
}
if (ReasonText != " ")
{
     ReasonText = ReasonText.Substring(1);
}

关于c# - 连接 XML 节点数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19972696/

相关文章:

java - 解析 Facebook 的 XML 查询响应问题

java - Android studio xml文件无法读取并且xml文件变成了文本文件

.net - 检测 .NET 对象的属性值的变化?

c# - 根据多个唯一字段从列表中选择

c# - Ninject - 在 .Net MVC 3 中有条件地创建类

c# - 在 .NET 中将 int 转换为 byte[4]

c# - 在类函数中使用私有(private)变量或实际属性的值?

c# - 文化不变 bool.TryParse

c - 使用 C 访问 xml 中的数据

c# - 美国网站的信用卡收单和 Paypal 解决方案