【发布时间】:2015-09-27 01:12:54
【问题描述】:
我的代码有问题,希望能得到您的帮助。我有一个 XmlNodeList (GetDetailPageSectionBySA) 类型的方法,现在该方法用作另一个方法中的参数之一。但是该方法 (GetServiceAccountusageAndBillingDetail) 需要该参数 (saDetailedPageNode) 的 XmlNode 类型。如果我将该参数的数据类型更改为 XmlNodeList,那么它会在只能使用 XmlNode 的行中弄乱一大堆东西。
我为什么不直接将第一个方法(GetDetailPageSectionBySA)的类型更改为 XmlNode 并解决您提出的所有问题?因为该类型只能返回一个节点,而该方法返回节点的集合,需要使用 XmlNodeList。
所以我只是想知道是否有任何方法可以将 XmlNodeList 转换或强制转换为 XmlNode,如果有,它是如何完成的?
foreach (GetBillForCAResponse eBillResponse in eBillResponseList)
{
var statementDetailsResponse = GetStatementDetails(
new GetStatementDetailsRequest
{
BatchId = eBillResponse.BatchId,
CustomerAccountId = eBillResponse.CA.ToString("000000000"),
StatementId = eBillResponse.CAS_NUM.ToString("0000")
});
string xmlBill = statementDetailsResponse.StatementAsXML.ToString();
var document = new XmlDocument();
document.LoadXml(xmlBill);
****var saDetailedPageNode = XmlBillParser.GetDetailPageSectionBySA(requestSA, xmlBill);// This is the method of type XmlNodeList
if (saDetailedPageNode == null) continue;
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);// This is where the invalid argument is because saDetailedPageNode should be of type XmlNode
response.Add(customerBill);
}
我已经在问题所在的地方加上了 **** 以及这些行上的 cmets。我是编码初学者,任何帮助都会很棒。提前致谢。
【问题讨论】:
标签: c# xml c#-4.0 xml-parsing c#-3.0