C# 解析 ISO-8859-1 中的 XML

芦苇

我正在开发一种用于验证从大型机获取的 XML 文件的工具。由于我无法控制的原因,每个 XML 文件都以 ISO 8859-1 编码。

<?xml version="1.0" encoding="ISO 8859-1"?>

我的 C# 应用程序利用 System.XML 库来解析 XML 并最终解析包含在其中一个子节点中的消息字符串。

如果我手动删除 XML 编码行,它就可以正常工作。但我想找到一种不需要人工干预的解决方案。有没有什么优雅的方法来解决这个问题?提前致谢。

抛出的异常如下:

System.Xml.XmlException'发生在 System.Xml.dll 中。系统不支持“ISO 8859-1”编码。第 1 行,位置 31

我的代码是

XMLDocument xmlDoc = new XMLDocument();
xmlDoc.Load(//fileLocation);
杰佩·斯蒂格·尼尔森

正如 Jeroen 在评论中指出的,编码应该是:

<?xml version="1.0" encoding="ISO-8859-1"?>

不是:

<?xml version="1.0" encoding="ISO 8859-1"?>

(缺少破折号-)。

StreamReader无论如何,您可以使用带有显式编码的 a 来读取文件:

using (var reader = new StreamReader("//fileLocation", Encoding.GetEncoding("ISO-8859-1")))
{
  var xmlDoc = new XmlDocument();
  xmlDoc.Load(reader);
  // ...
}

(来自competent_tech我在之前的评论中链接的其他线程中的回答)。

如果你不想using声明,我想你可以这样做:

var xmlDoc = new XmlDocument();
xmlDoc.LoadXml(File.ReadAllText("//fileLocation", Encoding.GetEncoding("ISO-8859-1")));

如果引用程序集(自 .NET 3.5 起)XmlDocument,则可以使用命名空间中XDocument代替它的静态方法,比如你可以如上使用。System.Xml.LinqSystem.Xml.Linq.dllLoad(Stream)Parse(string)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用lxml解析以iso-8859-1编码的xml文件?

来自分类Dev

在ISO-8859-1中编码NSURL

来自分类Dev

在ISO-8859-1中编码NSURL

来自分类Dev

如何在使用LINQ创建的xml中给出ISO-8859-1编码

来自分类Dev

骆驼异常解组JAXB ISO-8859-1 XML文件

来自分类Dev

如何从C中的八进制ISO-8859-1转储utf8

来自分类Dev

Jsoup-使用字符集iso-8859-1解析HTML文件

来自分类Dev

从ISO-8859-1转换大型XML为UTF-8与外部DTD实体

来自分类Dev

我应该将ANSI编码与XML ISO-8859-1一起使用吗?

来自分类Dev

使用 ISO-8859-1 XML 编码与 UTF-8 的 SVG 文件的实际差异

来自分类Dev

ByteString假定为ISO-8859-1?

来自分类Dev

ByteString假定为ISO-8859-1?

来自分类Dev

在ISO-8859-1中重新编码utf8..cp1250结果

来自分类Dev

go.text中的go iso-8859-1编码支持

来自分类Dev

如何在Oracle WE8ISO8859P1中存储€

来自分类Dev

根据.procmailrc文件中的文本将utf8解码为ISO-8859-1邮件

来自分类Dev

未知编码:Zombie.js中的ISO-8859-1错误

来自分类Dev

将SQL Server中的文本值从UTF8转换为ISO 8859-1

来自分类Dev

ZipArchive文件中的Json不支持ISO-8859-1格式

来自分类Dev

使用ISO-8859-1在Wildfly中打开ucanaccess / jackcess数据库

来自分类Dev

在python中读取ISO-8859-1文件时损坏的CJK数据

来自分类Dev

TextDecoder iso-8859-1:无效堆中的致命javascript OOM紧凑,接近堆限制

来自分类Dev

ZipArchive文件中的Json不支持ISO-8859-1格式

来自分类Dev

调用使用Progress 4GL中的ISO-8859-1编码的Web服务

来自分类Dev

问题Ubuntu在UTF-8和ISO-8859-1中都放出字符

来自分类Dev

响应中的内容类型标头由 charset=ISO-8859-1 附加

来自分类Dev

C#XmlSerializer强制将编码类型转换为ISO-8859-1

来自分类Dev

从UTF8转换为ISO 8859-5,改为获取ISO 8859-1

来自分类Dev

在 Linux 上使用中文字符进行 XML UTF-8/ISO-8859-1 编码的问题

Related 相关文章

  1. 1

    如何使用lxml解析以iso-8859-1编码的xml文件?

  2. 2

    在ISO-8859-1中编码NSURL

  3. 3

    在ISO-8859-1中编码NSURL

  4. 4

    如何在使用LINQ创建的xml中给出ISO-8859-1编码

  5. 5

    骆驼异常解组JAXB ISO-8859-1 XML文件

  6. 6

    如何从C中的八进制ISO-8859-1转储utf8

  7. 7

    Jsoup-使用字符集iso-8859-1解析HTML文件

  8. 8

    从ISO-8859-1转换大型XML为UTF-8与外部DTD实体

  9. 9

    我应该将ANSI编码与XML ISO-8859-1一起使用吗?

  10. 10

    使用 ISO-8859-1 XML 编码与 UTF-8 的 SVG 文件的实际差异

  11. 11

    ByteString假定为ISO-8859-1?

  12. 12

    ByteString假定为ISO-8859-1?

  13. 13

    在ISO-8859-1中重新编码utf8..cp1250结果

  14. 14

    go.text中的go iso-8859-1编码支持

  15. 15

    如何在Oracle WE8ISO8859P1中存储€

  16. 16

    根据.procmailrc文件中的文本将utf8解码为ISO-8859-1邮件

  17. 17

    未知编码:Zombie.js中的ISO-8859-1错误

  18. 18

    将SQL Server中的文本值从UTF8转换为ISO 8859-1

  19. 19

    ZipArchive文件中的Json不支持ISO-8859-1格式

  20. 20

    使用ISO-8859-1在Wildfly中打开ucanaccess / jackcess数据库

  21. 21

    在python中读取ISO-8859-1文件时损坏的CJK数据

  22. 22

    TextDecoder iso-8859-1:无效堆中的致命javascript OOM紧凑,接近堆限制

  23. 23

    ZipArchive文件中的Json不支持ISO-8859-1格式

  24. 24

    调用使用Progress 4GL中的ISO-8859-1编码的Web服务

  25. 25

    问题Ubuntu在UTF-8和ISO-8859-1中都放出字符

  26. 26

    响应中的内容类型标头由 charset=ISO-8859-1 附加

  27. 27

    C#XmlSerializer强制将编码类型转换为ISO-8859-1

  28. 28

    从UTF8转换为ISO 8859-5,改为获取ISO 8859-1

  29. 29

    在 Linux 上使用中文字符进行 XML UTF-8/ISO-8859-1 编码的问题

热门标签

归档