簡體   English   中英

C#讀取Resources文件夾中的XML文件

[英]C# Read XML files in the Resources folder

我正在嘗試閱讀我在項目下的Resources文件夾中包含的一些xml文件。 以下是我的代碼:

public void ReadXMLFile(int TFType)
{
        XmlTextReader reader = null;

        if (TFType == 1)
            reader = new XmlTextReader(MyProject.Properties.Resources.ID01);
        else if (TFType == 2)
            reader = new XmlTextReader(MyProject.Properties.Resources.ID02);


        while (reader.Read())
        {
            if (reader.IsStartElement())
            {
                switch (reader.Name)
                {
                    case "Number":
                   // more coding on the cases.
}

但是當我編譯時,“QP2020E.Properties.Resources.ID01”上有一個錯誤:“路徑中的字符非法。” 你們知道什么是錯的嗎?

XmlTextReader構造函數需要流或字符串。 需要字符串的那個需要一個url(或路徑)。 您正在傳遞資源的值。 您需要將字符串值轉換為流。

為此,請將其包裝在StringReader(...)中

reader = new XmlTextReader(new StringReader(MyProject.Properties.Resources.ID02)); 

您應該為XMLTextReader提供文件路徑而不是文件內容。 例如,改變

reader = new XmlTextReader(MyProject.Properties.Resources.ID01);

至:

StringReader s = new StringReader(MyProject.Properties.Resources.XmlFile);
XmlTextReader r = new XmlTextReader(s);

要從資源中讀取XML文件,請使用XDocument.Parse,如本答案中所述

我認為你需要修改你的代碼是這樣的:

public void ReadXMLFile(int TFType)
{
        XDocument doc = null;

        if (TFType == 1)
            doc = XDocument.Parse(MyProject.Properties.Resources.ID01);
        else if (TFType == 2)
            doc = XDocument.Parse(MyProject.Properties.Resources.ID02);


        // Now use 'doc' as an XDocument object
}

有關XDocument的更多信息,請點擊此處。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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