![](/img/trans.png)
[英]Path of XML file in Resources folder to FileStream in C# WPF project
[英]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.