我有下一个用Visual c#打开.XML文档的程序。我无法打开Xml,因为它有'&',我不知道我怎么能打开。
private void button1_Click(object sender, EventArgs e)
{
XmlDocument doc;
doc = new XmlDocument();
doc.Load("nuevo.xml");
XmlNodeList menus;
menus = doc.GetElementsByTagName("menu");
foreach (XmlNode unMenu in menus)
{
if (unMenu.Attributes["precio"].Value == "50")
{
//Console.WriteLine(unMenu.Attributes["type"].Value);
XPathNavigator navegador = doc.CreateNavigator();
XPathNodeIterator nodos = navegador.Select("/restaurante");
while (nodos.MoveNext())
{
Console.WriteLine(nodos.Current.OuterXml);
Console.WriteLine();
textBox1.Text = nodos.Current.OuterXml;
}
}
}
}
答案 0 :(得分:2)
如果收到错误
使用'&'
解析实体名称时发生错误
然后有一个“&”以XML元素的名义在某处。这在XML文档中是不允许的。您无法使用XmlDocument
(或XDocument
)类打开无效的XML文件。
你可以做几件事:
就个人而言,如果可能,我会选择1)或2)否则。
答案 1 :(得分:1)
将&
中所有出现的内容替换为xml中的&
。
答案 2 :(得分:0)
因此,在这个问题上花费了几个小时之后:事实证明,如果您在xml字符串中包含一个&符号或其他XML转义字符,则在尝试读取XML时它将总是失败。要解决此问题,请将特殊字符替换为转义的字符串格式
127.0.0.1 cookie.abc