[英]Reading an xml file with XDocument
我正在嘗試使用Web服務創建一個Android應用程序。 我想使用XDocument
讀取XML文件。 我已經在我的項目命名創建的文件夾xmlfolder
,並把我命名的XML文件myxml
進去。
我已經嘗試了其他解決方案,例如如何在窗口電話7中加載位於應用程序文件夾內的XML文件? 但似乎沒有用。 我一直收到錯誤:
System.IO.DirectoryNotFoundException: Could not find a part of the path "/xmlfolder/myxml.xml"
。
和
myxml.xml myxml is null
這是我嘗試過的東西:
if (string.IsNullOrEmpty(myFIileXML))
{
XDocument loadedData = XDocument.Load ("xmlfolder/myxml.xml");
myFileXML = loadedData.ToString ();
}
我認為你沒有正確指定相對路徑。 你也錯過了。 在myxmlxml中,雖然我猜這只是你帖子中的錯字。 試試這個:
XDocument loadedData = XDocument.Load ("../xmlfolder/myxml.xml");
如果您還沒有注意到,Android項目中有一個很好的Resource
和Assets
文件夾,這就是Android需要您所有應用文件的地方。 除非他們是班級,否則他們不能住在外面。 在這種情況下,您可能希望將文件放在Assets
文件夾中,將文件的Build Action標記為AndroidAsset。 這樣您就可以訪問您的文件,如:
using (var sr = Assets.Open("myxml.txt"))
{
var data = XDocument.Load(sr);
}
Android上的當前工作目錄是/
,它是不可寫的(並且不包含您的應用程序文件)。 因此錯誤消息:
System.IO.DirectoryNotFoundException: Could not find a part of the path "/xmlfolder/myxml.xml".
修復方法是使用實際存在的路徑,例如System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal)
。 此外,請注意您必須在“其他地方”創建此路徑,例如使用Directory.CreateDirectory()
。
如果不是這種情況,您可能希望使用Build.GetManifestResourceStream Assembly.GetManifestResourceStream()
來使用Build action EmbeddedResource
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.