簡體   English   中英

使用XDocument讀取xml文件

[英]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項目中有一個很好的ResourceAssets文件夾,這就是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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM