我在整个项目中都使用过此代码,现在已经有更新已停止工作。我在网上找不到任何东西,这是我想要获取XML的格式
<?xml version="1.0" encoding="utf-8" ?>
<CATALOG>
<ITEM>
<UIElementIndex>GRID</UIElementIndex>
<Left>0</Left>
<Top>0</Top>
<Width>595</Width>
<Height>60</Height>
<Name>Header</Name>
<PlaceHolder></PlaceHolder>
<R>170</R>
<G>170</G>
<B>170</B>
</ITEM>
</CATALOG>
我一直在使用这段代码,我做错了什么
using (var stream = await PDFCRFileReader.Instance.MainFile.OpenStreamForWriteAsync())
{
foreach (PDFCRElement element in PDFCRFileReader.Instance.documentElements)
{
XDocument document = XDocument.Load(stream);
XElement xmlElemnt = new XElement("ITEM",
new XAttribute("ID", "NIT " + element.Name + ((element.Left * element.Top) * element.Width).ToString()),
new XElement("UIElementIndex", element.UIElementIndex),
new XElement("Left", element.Left),
new XElement("Top", element.Top),
new XElement("Width", element.Width),
new XElement("Height", element.Height),
new XElement("Name", element.Name),
new XElement("PlaceholderText", element.PlaceholderText),
new XElement("R", element.R),
new XElement("B", element.B),
new XElement("G", element.G));
document.Root.Element("CATALOG").Add(xmlElemnt);
document.Save(stream);
var dialog = new MessageDialog("FIle Saved!", "FILE SAVE STATUS");
await dialog.ShowAsync();
}
stream.Flush();
}
我收到了错误,昨天没有任何意义
System.NullReferenceException:'对象引用未设置为 一个对象的实例。'
答案 0 :(得分:0)
问题是因为Root元素&#34; CATALOG&#34;无法找到哪个提出这个问题。我使用以下代码然后发现结果为null:
var root = document.Root;
var cataroot = root.Element("CATALOG");
要从您自己的代码中解决此问题,请直接使用以下内容:
document.Root.Add(xmlElemnt);
也许您可以向here报告/咨询。也许该API中的规则已经更改。顺便说一句,我认为这种变化是合理的。这里的根已经是CATALOG,root.Element(&#34; CATALOG&#34;)正试图从根目录中找到CATALOG节点。