,這是有問題的代碼:爲什麼不能從字符串中讀取XML? (但將來自同一數據的.txt)的
using (var file = MemoryMappedFile.OpenExisting("AIDA64_SensorValues"))
{
using (var readerz = file.CreateViewAccessor(0, 0))
{
var bytes = new byte[567];
var encoding = Encoding.ASCII;
readerz.ReadArray<byte>(0, bytes, 0, bytes.Length);
File.WriteAllText("C:\\myFile.txt", encoding.GetString(bytes));
var readerSettings = new XmlReaderSettings { ConformanceLevel = ConformanceLevel.Fragment };
using (var reader = XmlReader.Create("C:\\myFile.txt", readerSettings))
{
這是myfile.txt的樣子:
<sys><id>SCPUCLK</id><label>CPU Clock</label><value>1598</value></sys><sys><id>SCPUFSB</id><label>CPU FSB</label><value>266</value></sys><sys><id>SMEMSPEED</id><label>Memory Speed</label><value>DDR2-667</value></sys><sys><id>SFREEMEM</id><label>Free Memory</label><value>415</value></sys><sys><id>SGPU1CLK</id><label>GPU Clock</label><value>562</value></sys><sys><id>SFREELVMEM</id><label>Free Local Video Memory</label><value>229</value></sys><temp><id>TCPU</id><label>CPU</label><value>42</value></temp><temp><id>TGPU1</id><label>GPU</label><value>58</value></temp>
如果我的數據寫入到一個txt與硬盤驅動器上的文件:
File.WriteAllText("C:\\myFile.txt", encoding.GetString(bytes));
然後讀取與片段的XmlReader是同一個文本文件:
XmlReader.Create("C:\\myFile.txt");
它讀取它只是罰款,程序運行並完成像它應該,但後來如果我直接與片段的XmlReader念想:
XmlReader.Create(encoding.GetString(bytes));
我得到異常,當運行「路徑非法字符「在XmlReader.Create
行。
我試着先將它寫入一個單獨的字符串,然後用xmlreader讀取它,並且它不會幫助將它打印到CMD以查看它的樣子,因爲CMD不會顯示處理正確的無效字符?
但哦,我沒有Console.WriteLine(encoding.GetString(bytes));
並精確匹配的txt文件。
所以不知怎麼寫到文本文件是刪除一些「非法字符」?你們有什麼感想?
真棒,工作很好,謝謝!你有最好的答案!但你們所有人都表示感謝! – Csharpz