XMLファイルの解析と処理のためのDOMアプローチと同様にSAX/Streamの学習を始めました。私のシナリオは、私がホストしていたFTPサーバから取得したXMLファイルから情報を処理し、リストを別のArrayリストに入れてからDBManagerに渡してデータベースに追加するというものです。しかし、データベースに追加する前に、「データベースに追加する」前に情報が実際に正しいかどうかを確認するために、「チェック・ボタン」を押してください。しかし、それは何とかFormatExceptionを引き起こします。私は私のクラスや変数の使い方に「DateTime」は表示されません。DOMアプローチによるXMLの処理中にFormatExceptionが処理されなかった
EDIT 1:アブド・フセインのおかげで、私はスクリーンショットで述べた問題は、私はノード、ないノード2を使用していたことに気づきました。しかし、同じ問題が次の行に適用され、おそらく後の行にも適用されます。それらはまだノードと同じループ内にあり、ノード2ではありません。
invoice.ShippingCharges = Convert.ToDecimal(node.ChildNodes[4].InnerText);
invoice.InvoiceTotal = Convert.ToDecimal(node.ChildNodes[5].InnerText);
これは、私が知っている(長すぎると厄介なので、後に、私は過去を取得する必要があるため、私はそれを残しておきます、この特定のクラスのためのペーストビンコードです
<?xml version="1.0" encoding="utf-8" ?>
<Invoices>
<Invoice ID="I001">
<InvoiceDate>21/06/2016</InvoiceDate>
<SellerID>Supp001</SellerID>
<BuyerID>WCS1810</BuyerID>
<OrderID>Order001</OrderID>
<InvoiceItem>
<Product ID="R001">
<ProductName>8GB RAM King</ProductName>
<Description>RAM</Description>
<Capacity>8GB</Capacity>
<Quantity>2</Quantity>
<UnitPrice>100</UnitPrice>
</Product>
</InvoiceItem>
<ShippingCharges>5</ShippingCharges>
<InvoiceTotal>205</InvoiceTotal>
</Invoice>
</Invoices>
:
http://pastebin.com/FewCm23W以下
は、私が働いているXMLになります)、この最初の
これらは、記憶すべき情報の異なる種類のクラスである:
Invoice.cs
class Invoice
{
public string InvoiceID { get; set; }
public string InvoiceDate { get; set; }
public string OrderID { get; set; }
public string SellerID { get; set; }
public decimal ItemsTotalPrice { get; set; }
public decimal ShippingCharges { get; set; }
//shippin charges + itemsTotalPrice
public decimal InvoiceTotal { get; set; }
}
InvoiceItem
class InvoiceItem
{
public string InvoiceID { get; set; }
public string ProductID { get; set; }
public string Description { get; set; }
public string Capacity { get; set; }
public int Quantity { get; set; }
public decimal UnitPrice { get; set; }
public decimal TotalPrice { get; set; }
}
どのforeachを指定するように注意しますか? – Kei
ノード2で取った値を計算してノード – Kei
Aaahに保存したいので、休憩して何か他の作業をして戻った後、node2の愚かなミスがどこにあるかを見ました。しかし、問題はこれらの行のためです: invoice.ShippingCharges = Convert.ToDecimal(node.ChildNodes [4] .InnerText); invoice.InvoiceTotal = Convert.ToDecimal(node.ChildNodes [5] .InnerText); 問題が解決しない – Kei