我开发了一个使用XML作为数据库文件的WPF应用程序。昨天,该计划停止工作。经过一番检查后,我看到Transaction.xml文件出现问题。我试图在IE中打开相同,但得到这个错误XML数据文件没有打开并正常工作
的XML页面无法显示
使用样式表无法查看XML输入。请更正错误,然后点击刷新按钮,或稍后再试。
在文本内容中发现无效字符。错误处理资源'file:/// C:/RegisterMaintenance/Transaction.xml
然后,我试图打开记事本中的文件,它显示了怪异的字符(屏幕截图如下)。
在最后,其显示XML的右侧结构。请告诉我出了什么问题,以及为什么xml无法正确显示。如何才能达到正常状态。我真的很担心,因为这是我唯一的数据文件。任何帮助或建议都会很棒。
一个是编辑该文件中的代码,也有使用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";
}
什么是文件编码? – 2012-07-12 07:51:18
它是'<?xml version =“1.0”encoding =“utf-8”?>' – 2012-07-12 07:55:45
是否有任何编辑器打开此文件,以便没有奇怪的字符(可能是UltraEdit)? – 2012-07-12 08:17:29