此代码按原样运行,但是当我在doc.Loadxml中引用外部xml文件时,它会停止工作。我怎样才能让它发挥作用?我不太明白。
我用它来调用GetXmlData并为gridview提供源代码:GridView1.ItemsSource = GetXmlData();
private static object GetXmlData()
{
XmlDocument doc = new XmlDocument();
doc.LoadXml(@"<?xml version=""1.0"" encoding=""utf-8"" ?>
<Products>
<Product>
<ID>1</ID>
<Name>ASP.NET</Name>
</Product>
</Products>
");
XmlDataProvider provider = new XmlDataProvider();
provider.IsAsynchronous = false;
provider.Document = doc;
provider.XPath = "Products/Product";
return new ObservableCollection<XmlNode>((IEnumerable<XmlNode>)provider.Data);
}
答案 0 :(得分:2)
你需要
doc.Load(fileName);
而不是
doc.LoadXml(xml);
答案 1 :(得分:1)
XMLDocument
有多种Load
方法,请参阅them with their description:
Load(Stream) Loads the XML document from the specified stream.
Load(String) Loads the XML document from the specified URL.
Load(TextReader) Loads the XML document from the specified TextReader.
Load(XmlReader) Loads the XML document from the specified XmlReader.
LoadXml(string) Loads the XML document from the specified string.
您正在使用最后一个用于从字符串加载XML的描述。
由于您需要从文件加载XML,因此您必须使用Load
方法,而不是LoadXml
。我认为第二种方法更适合您的情况。您可以传递XML文件的完整路径。
答案 2 :(得分:0)
这可以帮到你:
XmlDocument doc = new XmlDocument();
doc.Load(file_path);
您调用的方法仅从字符串加载xml。您需要从需要不同方法的文件中读取它。