我正在尝试阅读我在项目下的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”上有一个错误:“路径中的字符非法。”你们知道什么是错的吗?
答案 0 :(得分:1)
XmlTextReader构造函数需要流或字符串。需要字符串的那个需要一个url(或路径)。您正在传递资源的值。您需要将字符串值转换为流。
要执行此操作,请将其包装在StringReader(...)
中reader = new XmlTextReader(new StringReader(MyProject.Properties.Resources.ID02));
答案 1 :(得分:1)
您应该为XMLTextReader
提供文件路径而不是文件内容。例如,改变
reader = new XmlTextReader(MyProject.Properties.Resources.ID01);
要:
StringReader s = new StringReader(MyProject.Properties.Resources.XmlFile);
XmlTextReader r = new XmlTextReader(s);
答案 2 :(得分:0)
要从资源中读取XML文件,请按照此answer
中的说明使用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的更多信息,请点击此处。