c# - 内部文本中具有特殊字符的 XmlElement

标签 c# xml xml-parsing

在我的 C# 应用程序中,我正在根据数据库值创建一个 xml。它工作正常,直到字符串不是特殊字符。下面是我的代码。

 XmlDocument doc = new XmlDocument();
 XmlElement element = doc.CreateElement("NewDataSet");
  ------
 string itemname =System.Web.HttpUtility.HtmlEncode(ds.Tables[0].Rows[j]["itemname"].ToString());
 fieldElement = doc.CreateElement(itemname);
 fieldElement.InnerText = ds.Tables[0].Rows[j]["count"].ToString();
 fieldElement1.AppendChild(fieldElement);

我在“fieldElement = doc.CreateElement(itemname);”中遇到错误 as 名称中不能包含“”字符(十六进制值 0x20)。 抛出异常的字符串是“Adam & Eva frisør”。

谁能告诉我如何克服这个问题。

最佳答案

这里有两个可能的问题。首先,您对元素名称进行 html 编码。这将正常工作,直到元素名称包含特殊字符。

The element tags are case-sensitive; the beginning and end tags must match exactly. Tag names cannot contain any of the characters !"#$%&'()*+,/;<=>?@[]^`{|}~, nor a space character, and cannot start with -, ., or a numeric digit.

所以,这是一个等待发生的错误。确保名称有效且不包含任何特殊字符。

其次,您没有转义元素的内容。您引用的文本包含未转义的 &。这导致了您收到的实际错误。使用与元素文本的元素名称相同的转义方法。

fieldElement.InnerText = System.Web.HttpUtility.HtmlEncode(ds.Tables[0].Rows[j]["count"].ToString());
fieldElement1.AppendChild(fieldElement);

关于c# - 内部文本中具有特殊字符的 XmlElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14520836/

相关文章:

javascript - 从文件加载 XML 并解析?

c# - 全文搜索 - 有没有办法获取导致查询行的列名

Android - 如何通过 XML 编辑图像的大小以用作图标

c# - v2 中的 Woocommerce REST API POST 不起作用

xml - 如何创建和使用 XML 命名空间?

Java/Xpath——在相似实体中提取特定值

c# - 如何使用 C# 从 XML 文件中获取子属性值

java - 使用java解析XML文件-空指针异常

C#:ILog 接口(interface)是否应该是或具有 IEnumerable<Message>?

c# - 如何在禁用的文本框上启用复制粘贴