问题标签 [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.
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 时,这似乎工作得很好。
c# - .Net 中的 XmlSyntaxException 与 XmlException
在重用预定义异常类的概念中,在什么情况下哪个更可取?
例如,我正在使用 XmlReader 解析文档并遇到不一致的关闭标记:
扔什么?
需要注意的是,这两个异常不会相互继承,所以应该分别捕获。
c# - 解析有效 XML 时出现 XmlException
我有一个 WPF 应用程序,它调用一个 API 并创建一个System.Xml.Linq.XDocument
using XDocument.Parse(string)
. 我遇到了一个问题,XmlException
当我尝试执行此操作时抛出(“缺少根元素”),但我的 XML 完全有效。我尝试通过在浏览器中调用 API 并检查其语法、在我的应用程序中调用 API 并Console.WriteLine
获取响应以及使用各种 XML 语法验证器(所有这些都没有返回错误)来对其进行语法检查。
来自 API 的示例 XML 响应如下:
这是我的应用程序的代码:
为什么会这样?
load - XDocumetn.Load from document with version 1.1 in head 导致 XmlException
我在字符串 var "xml" 中有 xml
我尝试获取 XDocument。
System.Xml.XmlException。不允许版本号 1.1。
c# - 出现 XmlException 时如何从 channels.message 获取文本?
我想在文件中写入 System.ServiceModel.Channels.Message 类型的请求的内容,即使由于 XML 异常而无法读取它。
例如:我调用request.CreateBufferedCopy(int.MaxValue);
where request 是我收到的 Channels.Message 并返回以下错误:
我希望能够将请求的内容写入文件中,以便查看实际问题。(这是一个简单的例子,但我想写这个文件可能还有其他原因)
我尝试使用 将我的请求转换为字节数组BinaryFormatter
,但 Channels.Message 不可序列化。
这是我测试的请求,我接受了一个有效的肥皂请求并在末尾删除了一个“>” </controlActEvent
:
但我想记录我收到的任何东西,所以我的例子并不重要。
c# - 如何确定几个不同错误中的哪一个可能导致 XmlException?
我正在使用的系统DataSet.ReadXml(XmlReader)
用于读取 XML 文件并将其内容加载到DataSet
. XML 文件来自业务合作伙伴,可能并不总是格式正确,但该系统预计会对输入执行合理的更正。
我们在 XML 输入文件中看到了错误,例如:
- 情况1:在字符串值中间,使用了, 或者我最喜欢的, 等字符
'<'
,'>'
导致'&'
“解析EntityName时出错。行x,位置y。 ” - 案例 2:在字符串值的中间,奇怪的构造,例如
"<3"
,文本描绘了一颗心,这导致“名称不能以 '3' 字符开头。行 x,位置 y。 ” - 情况 3:给定编码的字符无效,导致“给定编码中的字符无效。第 x 行,位置 y。 ”
如果采用一些简单的规则,则可以通过编程方式解决这些错误:
- 情况 1:将违规字符替换为其 XML 字符实体(
"&"
变得"&"
等) - 情况2:把
"<"
in"<3"
换成空格,这样就变成了" 3"
- 案例3:用空格替换无效字符
但是,所有这些错误都会引发相同的异常:System.Xml.XmlException
当遇到任何这些错误时,我想采取适当的措施,但最好的方法是什么?这三个不同的错误都具有相同的HRESULT
值(-2146232000),到目前为止,我能够区分它们的唯一方法是检查XmlException.Message
字符串属性。
字符串比较似乎是确定错误确切原因的糟糕方法。如果我遵循这种方法,那么如果异常消息在未来版本的 .NET 中发生更改,代码就会中断。它也不能移植到某些语言。
因此,如何以编程方式区分可以在 中表示的各种类型的错误XmlException
?
编辑
在下面的评论中,我收到了关于确保 XML 数据高质量的重要性的建议。我不反对,但正如我的问题所述,这超出了我的控制范围,我对此无能为力。所以,尽管你的言论是善意的,但他们没有抓住重点。如果您知道区分课堂上可能出现的许多错误的好方法System.Xml.XmlException
,请分享您的知识。谢谢你。
c# - C#区分异常
在 C# 中,我需要捕获 XMLException,但我也必须区分它,因为它可以是Xml_InvalidRootData或Xml_UnexpectedEOF。
我怎样才能做到这一点?
那些我只能在调试器中看到别名为“ResString”的字符串。
但我想有多元文化的解决方案,所以字符串比较是我想尽可能避免的事情。
H结果是一样的。
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?
c# - 解码 xml 时出错。"&" 无效标记。等待 ”;”
我有一个 xml 文件,当我试图解码它时。
我收到一个错误“&”不是有效的标记。等待 ”;”。xml文件
c# - 将 Windows 日志反序列化为 PSObject 时出错?
尝试使用“PSSerializer.Deserialize(log) as PSObject;”反序列化 Powershell 日志 但不断收到错误:
日志示例: