c# - xml 和 & 问题

标签 c# xml xmldocument

我是 XML 的新手,我现在正在尝试读取 xml 文件。 我用谷歌搜索并尝试以这种方式读取 xml,但出现此错误。

Reference to undeclared entity 'Ccaron'. Line 2902, position 9.

当我转到第 2902 行时,我得到了这个,

<H0742>&Ccaron;opova 14, POB 1725,
SI-1000 Ljubljana</H0742>

这是我尝试过的方式

XmlDocument xDoc = new XmlDocument();
xDoc.Load(file);
            XmlNodeList nodes = xDoc.SelectNodes("nodeName");
            foreach (XmlNode n in nodes)
            {
if (n.SelectSingleNode("H0742") != null)
                {
                    row.IrNbr = n.SelectSingleNode("H0742").InnerText;
                }
                .
                .
                .
            }

当我查看 w3school 时,& 在 xml 中是非法的

编辑: 这是编码。我想知道它与 xml 有什么关系。

encoding='iso-8859-1'

提前致谢。

编辑:

他们给了我一个 .ENT 文件,我可以引用在线 ftp.MyPartnerCompany.com/name.ent。 在这个 .ENT 文件中 我看到这样的实体

<!ENTITY Cacute "&#262;"> <!-- latin capital letter C with acute,
                                  U+0106 Latin Extended-A -->

如何在我的 xml 解析中引用它? 我更喜欢在线引用,因为他们可能随时添加新的。 提前致谢!!!

最佳答案

首先要注意的是问题不在您的软件中。

由于您是 XML 的新手,我猜您以前不会遇到定义实体的问题。字符实体是任意文本片段(一个或多个字符)的快捷方式。您最常看到它们的地方就是您现在所处的情况。在某些时候,您的 XML 是由想要键入字符“C”或“C”的人创建的(如果您的字体无法显示,则为带 Caron 的大写和小写 C)。

但是,在 XML 中,我们只有几个预先声明的实体(与号、小于号、大于号、双引号和撇号)。需要声明任何其他字符实体。为了正确解析您的文件,您需要做以下两件事之一 - 用不会导致解析器问题的东西替换字符实体或声明实体。

要声明实体,您可以使用称为“内部子集”的东西 - 您可能会在 XML 文件顶部看到的 DTD 语句的一种特殊形式。像这样:

<!DOCTYPE root-element 
   [ <!ENTITY Ccaron "&#x010C;">
     <!ENTITY ccaron "&#x010D;">]
>

将该语句放在 XML 文件的开头(更改“根元素”以匹配您的)将允许解析器解析实体。

或者,只需将 Č 更改为 Č,您的问题也将得到解决。

&# 表示法是一个数字实体,为字符提供适当的 unicode 值('x' 表示它是十六进制)。

您也可以只输入字符,但这需要了解您的键盘和区域的来龙去脉。

关于c# - xml 和 & 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7993024/

相关文章:

c# - EFCore 通过 AddAsync() 添加临时 ID

xml - 从 Oracle 表在 PL/SQL 中生成 XML 文档

android - 以编程方式设置 TextInputLayout 主题

c# - 使用c#循环遍历xml文件中的所有节点

c# - 使用 XmlDocument 向元素添加命名空间的正确方法

c# - C# 的 Marshal.ReadInt32(IntPtr) 在 Delphi 中是什么意思?

c# - 将数组的 C# 字符串或字符串 [] 分配给 javascript 数组

c# - 获取 xml 文件的最后一个元素

c# - 即使应用程序未聚焦,也可以 Hook /检测 Windows 语言更改

xml - 如何在 XML 中编写数组? YML-XML 翻译