C#XML - 读取包含的XML文档
我已经创建了一个基本项目,我添加了一个非常简单的xml文件。我可以在项目解决方案中看到该文件和我的一个表单。我试图编写代码来阅读XML文件,但我似乎无法访问它作为视觉工作室似乎没有拿起它那里,如果这是有道理的?我如何获取该文件,这样我就可以做这样的事情C#XML - 读取包含的XML文档
XmlDocument doc = new XmlDocument();
doc.Load("My document here")
感谢
你是说你添加的XML文件来解决呢?如果是这样,您需要编辑xml文件的属性(在解决方案资源管理器中右键单击并选择属性),并将其设置为始终在构建中复制。这将在构建时将xml文件复制到bin/Debug文件夹,并且这是程序运行的位置。如果没有,则需要将文件路径更改为“../../filename.xml”,这也将起作用。
注意:
这只是你的问题的解决方案,如果XML文件是解决方案的一部分,当你运行它的程序没有找到该文件。而且你不能使用绝对路径。
是的,我将xml文件添加到我的解决方案。我现在右键单击xml文件上的属性并将副本设置为输出目录以始终。然而,intellisense仍然不会拿起文件名,除非它不应该? – tom 2010-12-03 12:15:01
你需要做的线沿线的东西:
using(XmlTextReader reader = new XmlTextReader ("yourfile.xml"))
{
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element: // The node is an element.
Console.Write("<" + reader.Name);
Console.WriteLine(">");
break;
case XmlNodeType.Text: //Display the text in each element.
Console.WriteLine (reader.Value);
break;
case XmlNodeType. EndElement: //Display the end of the element.
Console.Write("</" + reader.Name);
Console.WriteLine(">");
break;
}
}
}
我假设你要分析你在阅读后的XML文件?
将xml文件添加为项目的资源(build action = embedded resource)。并使用:
public static XmlDocument GetEmbeddedXml(Assembly assembly, string fileName)
{
using (var str = GetEmbeddedFile(assembly, fileName))
{
using (var tr = new XmlTextReader(str))
{
var xml = new XmlDocument();
xml.Load(tr);
return xml;
}
}
}
public static Stream GetEmbeddedFile(Assembly assembly, string fileName)
{
string assemblyName = assembly.GetName().Name;
Assembly a = Assembly.Load(assemblyName);
Stream str = a.GetManifestResourceStream(assemblyName + "." + fileName);
if (str == null)
throw new Exception("Could not locate embedded resource '" + fileName + "' in assembly '" + assemblyName + "'");
return str;
}
您可以将其设置为嵌入式资源或始终使用复制 – 2010-12-03 12:18:29