2017-02-01 67 views
-1

我想用JSON.NET將XML轉換爲JSON。我現在的問題似乎是代碼在LoadXml中掛起。LoadXml懸掛C#

   XmlDocument xDoc = new XmlDocument(); 
       Console.WriteLine("1"); 
       xDoc.LoadXml("discordBotFiles/xmldata.xml"); 

       Console.WriteLine("2"); 
       String jsonConversion = JsonConvert.SerializeXmlNode(xDoc); 

       Console.WriteLine("3"); 
       JObject textToJson = JObject.Parse(jsonConversion); 

不管XML是什麼,不管XML中的內容如何,​​它總是掛在LoadXml調用中。打印到控制檯是爲了確定它掛在哪裏。

編輯:我已經將LoadXml更改爲Load,但它仍然不會引發異常並仍然掛起。

編輯2:嘆氣,我發現了這個例外。我沒有在控制檯中顯示,但它在Visual Basic中的輸出中顯示。我沒想到要去那裏看。 拋出的異常:System.Xml.dll中的'System.IO.FileNotFoundException'

+1

你確定它掛起,而不是它引發異常嗎?你使用錯誤的方法來加載你的xml *文件*,因爲'LoadXml'的參數是實際的XML,而不是文件名,因此我認爲代碼實際上是拋出一個異常。你在線程中運行這個嗎? –

+0

xml文件有多大?在大文件上使用XmlDocument很慢,您應該使用XmlReader以較小的塊讀取文件。 – jdweng

+0

我已將它更改爲Load,但它仍然掛起,感嘆。該文件非常小。可悲的是,我害怕發佈這裏,因爲我正在製作一個nsfw應用程序。 我不確定它是否在一個線程中運行它,一直只爲C#編寫一個小程序的月份。這是我第一個大的。它雖然在異步下運行。 –

回答

0

XmlDocument.LoadXml將xml內容作爲參數,而不是文件名。如果您想讀取文件,請使用XmlDocument.Load

而且我很確定它沒有掛起 - 它會拋出一個XmlException,因爲正在解析的數據(discordBotFiles/xmldata.xml)不是有效的Xml。如果您的應用程序掛起,它在您的異常處理中,而不是XmlDocument