首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自资源的ReadXml -解释

来自资源的ReadXml -解释
EN

Stack Overflow用户
提问于 2014-01-28 15:47:51
回答 1查看 148关注 0票数 0

我一直在做一个项目(C#),其中的一部分是用一个嵌入的xml文件填充数据网格。

虽然我现在找到了一种方法来完成这项工作,但我仍然对其背后的理论感到困惑。在我继续做这个项目之前,我想先停下来,确保我完全理解它。

我目前工作的代码是;

代码语言:javascript
复制
XmlDataDocument myXML = new XmlDataDocument();  
StringReader mytempXML = (new StringReader(BasicTest.Properties.Resources.myxml));
myXML.DataSet.ReadXml(mytempXML);

让我困惑的是,在这个解决方案之前,我正在尝试以下的方法;

代码语言:javascript
复制
myXML.DataSet.ReadXml(BasicTest.Properties.Resources.myxml);

但它不起作用。但是,使用完整的文件路径(如下面所示)是有效的。

代码语言:javascript
复制
myXML.DataSet.ReadXml("C:/..etc../myxml.xml");

我的问题是:如果您正在从资源中读取,但使用完整的文件路径却不使用?,为什么ReadXml方法需要一个StringReader?

如果有人能给出解释,那就太好了。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-28 16:05:49

这是因为ReadXml方法接受一个字符串。该字符串必须是文件的名称。它不可能是XML。如果您传递给它一个字符串,即XML,它会认为这是文件的名称!它没有聪明地查看字符串并问“这个字符串XML,还是一个文件名?”想办法解决这个问题。

代码语言:javascript
复制
// Summary:
//     Reads XML schema and data into the System.Data.DataSet using the specified
//     file.
//
// Parameters:
//   fileName:
//     The filename (including the path) from which to read.
public XmlReadMode ReadXml(string fileName);

通过将XML封装在一个字符串读取器或流或其他东西中,您将调用一个不同的重载,该重载要求XML而不是文件名。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21410291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档