我的代码存在问题,希望能得到您的帮助。我有一个类型为XmlNodeList(GetDetailPageSectionBySA)的方法,现在该方法被用作另一个方法中的参数之一。但是该方法(GetServiceAccountusageAndBillingDetail)期望该参数的一种XmlNode(saDetailedPageNode)。如果我将该数据类型更改为该参数的XmlNodeList,那么它会混淆一大堆内容,只能使用XmlNode。
为什么我不将第一种方法(GetDetailPageSectionBySA)的类型更改为XmlNode并解决我问的所有问题?因为该类型只能返回一个节点,并且该方法返回节点集合,需要使用XmlNodeList。
所以我只是想知道是否有任何方法可以将XmlNodeList转换或转换为XmlNode,如果是这样,它是如何完成的?
{{1}}
我已将问题放在****以及对这些问题的评论。我是编码的初学者,任何帮助都会很棒。谢谢你提前。
答案 0 :(得分:0)
没有将XmlNodeList
投射到XmlNode
这样的事情。顾名思义,XmlNodeList
是XmlNode
的列表。因此,如果您想对列表中的XmlNode
执行某些操作,则必须浏览列表并对该列表中的每个节点执行某些操作。
在您的情况下,我怀疑GetDetailPageSectionBySA
可能会从帐单中返回多个部分。如果是这样,您可以添加foreach
循环:
foreach (GetBillForCAResponse eBillResponse in eBillResponseList)
{
// removed code for brevity
foreach(var saDetailedPageNode =x mlBillParser.GetDetailPageSectionBySA(requestSA, xmlBill)
{
var customerBill = new CustomerBill();
customerBill.IsSurepay = XmlBillParser.GetSurepayFlagFromBill(document);
customerBill.ServiceAddress = XmlBillParser.GetServiceAddress(requestSA, document);
customerBill.MonthName = XmlBillParser.GetBillStatementDate(requestSA, xmlBill);
customerBill.EqCurPlanBal = XmlBillParser.GetEqualizerCurrentPlanBalance(document);
customerBill.EqPymntDue = XmlBillParser.GetEqualizerPaymentDue(document);
customerBill.Service = GetServiceAccountUsageAndBillingDetail(requestSA, xmlBill, saDetailedPageNode)
response.Add(customerBill);
}
}