【发布时间】:2020-10-17 12:24:34
【问题描述】:
我正在尝试将单行/节点(如下提供)添加到 XML 中:
<Import Project=".www\temp.proj" Condition="Exists('.www\temp.proj')" />
该行可能位于 XML 的主/根节点下:
<Project Sdk="Microsoft.NET.Sdk">
我使用的方法:
XmlDocument Proj = new XmlDocument();
Proj.LoadXml(file);
XmlElement root = Proj.DocumentElement;
// Not sure about the next steps
root.SetAttribute("not sure", "not sure", "not sure");
虽然我不完全知道如何在 XML 中添加该行,因为这是我第一次尝试直接编辑 XML 文件,但该错误导致了额外的问题。
我在第一次尝试时收到此错误:
C# "loadxml" '根级别的数据无效。第 1 行,位置 1。'
知道这个错误是一个著名的错误,有些人在此链接中提供了多种方法:
xml.LoadData - Data at the root level is invalid. Line 1, position 1
不幸的是,大多数解决方案都过时了,答案在这个案例上不起作用,我不知道如何在这个案例上应用其他人。
在该问题的链接上提供/接受的答案:
string _byteOrderMarkUtf8 = Encoding.UTF8.GetString(Encoding.UTF8.GetPreamble());
if (xml.StartsWith(_byteOrderMarkUtf8))
{
xml = xml.Remove(0, _byteOrderMarkUtf8.Length);
}
基本上它不起作用,因为xml.StartsWith似乎不再存在,同时xml.Remove也不存在。
您能否提供一段代码绕过错误并将该行添加到 XML 中?
编辑: cmets 部分提供了示例 XML 文件。
【问题讨论】:
-
可以分享一下原xml吗?
-
好的,请稍等。
-
在OneDrive:(名字不一样,不管你用哪个名字,我都可以编辑问题使其匹配)1drv.ms/u/s!AlScPmE9PLAKgTGcMhbWvznrT9NA?e=ijeEDx