【发布时间】:2013-07-21 15:16:00
【问题描述】:
我正在尝试在 WiX 安装程序中解析一些 XML。 XML 将是我从 Web 服务器返回的所有错误的对象。我在使用此代码的问题标题中遇到错误:
XmlDocument xml = new XmlDocument();
try
{
xml.LoadXml(myString);
}
catch (Exception ex)
{
System.IO.File.WriteAllText(@"C:\text.txt", myString + "\r\n\r\n" + ex.Message);
throw ex;
}
myString 是这个(如text.txt 的输出所示)
<?xml version="1.0" encoding="utf-8"?>
<Errors></Errors>
text.txt 看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<Errors></Errors>
Data at the root level is invalid. Line 1, position 1.
我需要解析这个 XML,以便查看是否有任何错误。
【问题讨论】:
-
@marc_s:
string真的可以是 UTF-8 吗?如果在加载之前删除处理指令(第一行)怎么办? -
如果我获取您的代码并编译并运行它,我不会收到任何错误。但这可能是因为我填充了 myString 硬编码。您的 myString 是如何设置的?如果它来自另一个文件或流,则文件顶部的字节顺序标记可能会令人讨厌。编辑器通常不会显示它(除非他们有十六进制模式)。
-
它似乎在没有第一行的情况下解析。让我确保能够以这种方式处理错误。抱歉,拖了这么久。每次我想测试时,我都必须重新构建整个 WiX 安装程序。
-
@Richard - 它来自远程服务器的服务调用。
-
如果您在上面的文件中有任何内容:
<?xml version="1.0" encoding="utf-8"?>然后将其从文件中删除并重试。
标签: c# xml xml-parsing wix