我有一个file.xml
用 Iso-latin-15(又名 Iso-Latin-9)编码的 XML 文档
<?xml version="1.0" encoding="iso-8859-15"?>
<root xmlns="http://stackoverflow.com/demo">
<f>€.txt</f>
</root>
从我最喜欢的文本编辑器中,我可以看出这个文件以 Iso-Latin-15 正确编码(它不是 UTF-8)。
我的软件是用 C# 编写的,想要提取元素f
。
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("file.xml");
在现实生活中,我有一个 XMLResolver 来设置凭据。但基本上,我的代码就是这么简单。加载顺利,我没有提出任何异常。
现在,我提取值时的问题:
//xnsm is the XmlNameSpace manager
XmlNode n = xmlDoc.SelectSingleNode("//root/f", xnsm);
if (n != null)
String filename = n.InnerText;
Visual Studio 调试器显示文件名 =□.txt
它可能只是一个 Visual Studio 错误。不幸的是File.Exists(filename)
返回 false,而文件实际存在。
怎么了?