gpt4 book ai didi

c# - 给定编码中的无效字符

转载 作者:太空宇宙 更新时间:2023-11-03 14:14:47 26 4
gpt4 key购买 nike

XmlDocument oXmlDoc = new XmlDocument();

try
{
oXmlDoc.Load(filePath);
}
catch (Exception ex)
{
// Log Error Here
try
{
Encoding enc = Encoding.GetEncoding("iso-8859-1");
StreamReader sr = new StreamReader(filePath, enc);
String response = sr.ReadToEnd();
oXmlDoc.LoadXml(response);
}
catch (Exception innerException)
{
// Log Error Here
return false;
}
}

我从第三方获得了 xml 文件,其中还包括 xml 声明后的文档类型定义文件。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE SoccerMatchPlus SYSTEM "SoccerMatchPlus.dtd">
<SoccerMatchPlus matchid="33226">
<Booking id="13642055" time="47">
<Player id="370927">
<Name firstName="Lasse" initials="L" lastName="Nielsen">L Nielsen</Name>
</Player>
<Team id="26415" name="AæB" homeOrAway="Home"/>
</Booking>
</SoccerMatchPlus>

如果我在给定的编码中解析具有无效字符的文件。第 102 行,位置 56。如果我捕获到异常并重试解析文件,那么我遇到了另一个问题,文件解析但是

我收到错误找不到文件“C:\Windows\system32\SoccerMatchPlus.dtd”。

名为 SoccerMatchPlus.dtd 的文档类型定义文件由第三方添加到根元素之前。

在 Load 方法的情况下,解析器从 xml 文件也存在的位置加载文件。

我将 SoccerMatchPlus.dtd 放在 xml 文件所在的其他位置,我能否在运行时从指定位置加载该 SoccerMatchPlus.dtd 文件,或者您能告诉我加载包含无效字符数据的 xml 文件的更好方法吗?

最佳答案

使用 XmlDocument 类的 XmlResolver 属性禁用 DTD 处理。

XmlDocument oXmlDoc = new XmlDocument();
oXmlDoc.XmlResolver = null;

关于c# - 给定编码中的无效字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6829715/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com