问题标签 [xmlexception]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
5902 浏览

c# - 以 UTF-16 编码格式反序列化 xml 文件时出现 XmlException

使用 C# 的 XmlSerializer。

在反序列化给定文件夹中的所有 xml 文件的过程中,我看到 XmlException "There is an error in XML document (0, 0)".和 InnerException 是"There is no Unicode byte order mark. Cannot switch to Unicode".

目录中的所有 xml 都是“UTF-16”编码的。唯一的区别是,一些 xml 文件缺少在反序列化时我正在使用其对象的类中定义的元素。

例如,假设我的文件夹中有 3 种不同类型的 xml:

文件1.xml

文件2.xml

文件 3.xml

我有一个类来表示上述 xml:

以下片段为我进行了反序列化:

我错过了什么吗?它必须与编码格式有关,因为当我尝试用 UTF-8 手动替换 UTF-16 时,这似乎工作得很好。

0 投票
0 回答
73 浏览

c# - .Net 中的 XmlSyntaxException 与 XmlException

在重用预定义异常类的概念中,在什么情况下哪个更可取?

例如,我正在使用 XmlReader 解析文档并遇到不一致的关闭标记:

扔什么?

需要注意的是,这两个异常不会相互继承,所以应该分别捕获。

0 投票
1 回答
127 浏览

c# - 解析有效 XML 时出现 XmlException

我有一个 WPF 应用程序,它调用一个 API 并创建一个System.Xml.Linq.XDocumentusing XDocument.Parse(string). 我遇到了一个问题,XmlException当我尝试执行此操作时抛出(“缺少根元素”),但我的 XML 完全有效。我尝试通过在浏览器中调用 API 并检查其语法、在我的应用程序中调用 API 并Console.WriteLine获取响应以及使用各种 XML 语法验证器(所有这些都没有返回错误)来对其进行语法检查。
来自 API 的示例 XML 响应如下:

这是我的应用程序的代码:

为什么会这样?

0 投票
1 回答
52 浏览

load - XDocumetn.Load from document with version 1.1 in head 导致 XmlException

我在字符串 var "xml" 中有 xml

我尝试获取 XDocument。

System.Xml.XmlException。不允许版本号 1.1。

0 投票
0 回答
424 浏览

c# - 出现 XmlException 时如何从 channels.message 获取文本?

我想在文件中写入 System.ServiceModel.Channels.Message 类型的请求的内容,即使由于 XML 异常而无法读取它。

例如:我调用request.CreateBufferedCopy(int.MaxValue);where request 是我收到的 Channels.Message 并返回以下错误:

我希望能够将请求的内容写入文件中,以便查看实际问题。(这是一个简单的例子,但我想写这个文件可能还有其他原因)

我尝试使用 将我的请求转换为字节数组BinaryFormatter,但 Channels.Message 不可序列化。

这是我测试的请求,我接受了一个有效的肥皂请求并在末尾删除了一个“>” </controlActEvent

但我想记录我收到的任何东西,所以我的例子并不重要。

0 投票
1 回答
86 浏览

c# - 如何确定几个不同错误中的哪一个可能导致 XmlException?

我正在使用的系统DataSet.ReadXml(XmlReader)用于读取 XML 文件并将其内容加载到DataSet. XML 文件来自业务合作伙伴,可能并不总是格式正确,但该系统预计会对输入执行合理的更正。

我们在 XML 输入文件中看到了错误,例如:

  • 情况1:在字符串值中间,使用了, 或者我最喜欢的, 等字符 '<''>'导致'&'解析EntityName时出错。行x,位置y。
  • 案例 2:在字符串值的中间,奇怪的构造,例如 "<3",文本描绘了一颗心,这导致“名称不能以 '3' 字符开头。行 x,位置 y。
  • 情况 3:给定编码的字符无效,导致“给定编码中的字符无效。第 x 行,位置 y。

如果采用一些简单的规则,则可以通过编程方式解决这些错误:

  • 情况 1:将违规字符替换为其 XML 字符实体("&"变得"&amp;"等)
  • 情况2:把"<"in"<3"换成空格,这样就变成了" 3"
  • 案例3:用空格替换无效字符

但是,所有这些错误都会引发相同的异常:System.Xml.XmlException

当遇到任何这些错误时,我想采取适当的措施,但最好的方法是什么?这三个不同的错误都具有相同的HRESULT值(-2146232000),到目前为止,我能够区分它们的唯一方法是检查XmlException.Message字符串属性。

字符串比较似乎是确定错误确切原因的糟糕方法。如果我遵循这种方法,那么如果异常消息在未来版本的 .NET 中发生更改,代码就会中断。它也不能移植到某些语言。

因此,如何以编程方式区分可以在 中表示的各种类型的错误XmlException

编辑

在下面的评论中,我收到了关于确保 XML 数据高质量的重要性的建议。我不反对,但正如我的问题所述,这超出了我的控制范围,我对此无能为力。所以,尽管你的言论是善意的,但他们没有抓住重点。如果您知道区分课堂上可能出现的许多错误的好方法System.Xml.XmlException,请分享您的知识。谢谢你。

0 投票
1 回答
331 浏览

c# - C#区分异常

在 C# 中,我需要捕获 XMLException,但我也必须区分它,因为它可以是Xml_InvalidRootDataXml_UnexpectedEOF

我怎样才能做到这一点?

那些我只能在调试器中看到别名为“ResString”的字符串。

但我想有多元文化的解决方案,所以字符串比较是我想尽可能避免的事情。

H结果是一样的。

0 投票
1 回答
259 浏览

azure - Azure, MVC Core Web App suddenly throw "XmlException: Root element is missing" + "CryptographicException"

I have a web application hosted by an Azure App service. It has worked fine for years but suddenly I get an Exception when i try to enter the Account/login action: -->"XmlException: Root element is missing" + "CryptographicException: An error occurred while trying to encrypt the provided data.". If i got to Home/About action (which have [AllowAnonymous] attribute) that page works fine. But if i try to enter a page within the Account controller which have the [AllowAnonymous] attribute. That also throw the same Exception. So I am guessing the Exception occur in the constructor for the Account controller. See below.

I have not made any updates to the page in months and it has worked fine until now. If I run the application locally on my PC (connected to the same database on azure) it works fine. As I understand Azure have recently made updates to their portal. My guess is that the cause of the error is related to that.

Does anyone know how to solve this?

0 投票
1 回答
26 浏览

c# - 解码 xml 时出错。"&" 无效标记。等待 ”;”

我有一个 xml 文件,当我试图解码它时。

我收到一个错误“&”不是有效的标记。等待 ”;”。xml文件

0 投票
1 回答
35 浏览

c# - 将 Windows 日志反序列化为 PSObject 时出错?

尝试使用“PSSerializer.Deserialize(log) as PSObject;”反序列化 Powershell 日志 但不断收到错误:

日志示例: