XMLをデータベースファイルとして使用してWPFアプリケーションを開発しました。昨日、プログラムは動作を停止しました。確認したところ、 Transaction.xmlファイルに問題があることがわかりました。IEで同じものを開こうとしましたが、このエラーが発生しました
XMLページを表示できません
スタイルシートを使用してXML入力を表示することはできません。エラーを修正してから[更新]ボタンをクリックするか、後でもう一度やり直してください。
テキストコンテンツに無効な文字が見つかりました。リソースの処理中にエラーが発生しました'file:/// C:/RegisterMaintenance/Transaction.xml
次に、メモ帳でファイルを開こうとすると、奇妙な文字が表示されました(下のスクリーンショット)。
結局、xmlの正しい構造を表示します。何がうまくいかなかったのか、なぜxmlが正しく表示されないのかを教えてください。どうすれば正常な状態に戻すことができますか。これが私の唯一のデータファイルなので、私は本当に心配しています。どんな助けや提案も素晴らしいでしょう。
このファイルを編集するコードの1つであり、Transaction.xmlを使用する他の同様のタイプのコードファイルがあります。
public string Add()
{
XDocument doc1 = XDocument.Load(@"Ledgers.xml");
XElement elem = (from r in doc1.Descendants("Ledger")
where r.Element("Name").Value == this.Buyer
select r).First();
this.TinNo = (string)elem.Element("TinNo");
this.PhoneNo = (string)elem.Element("PhoneNo");
this.CommissionAmount = (this.CommissionRate * this.Amount) / 100;
this.CommissionAmount = Math.Round((decimal)this.CommissionAmount);
this.VatAmount = (this.CommissionAmount + this.Amount) * this.VatRate / 100;
this.VatAmount = Math.Round((decimal)this.VatAmount);
this.InvoiceAmount = this.Amount + this.CommissionAmount + this.VatAmount;
XDocument doc2 = XDocument.Load(@"Transactions.xml");
var record = from r in doc2.Descendants("Transaction")
where (int)r.Element("Serial") == Serial
select r;
foreach (XElement r in record)
{
r.Element("Invoice").Add(new XElement("InvoiceNo", this.InvoiceNo), new XElement("InvoiceDate", this.InvoiceDate),
new XElement("TinNo", this.TinNo), new XElement("PhoneNo", this.PhoneNo), new XElement("TruckNo", this.TruckNo), new XElement("Source", this.Source),
new XElement("Destination", this.Destination), new XElement("InvoiceAmount", this.InvoiceAmount),
new XElement("CommissionRate", this.CommissionRate), new XElement("CommissionAmount", this.CommissionAmount),
new XElement("VatRate", this.VatRate), new XElement("VatAmount", this.VatAmount));
}
doc2.Save(@"Transactions.xml");
return "Invoice Created Successfully";
}