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 デバッガーは filename = を表示します。□.txt
Visual Studio のバグである可能性があります。残念ながらFile.Exists(filename)
、ファイルは実際に存在しますが、false を返します。
どうしたの?