gpt4 book ai didi

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

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

在我的 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/

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