2011-03-09 5 views
0

이 코드는 그대로 작동하지만 doc.Loadxml에서 외부 xml 파일을 참조하면 작동하지 않습니다. 어떻게 작동시킬 수 있습니까? 나는 꽤 이해하지 못한다.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

로드하려는 XML이 유효하다는 것을 확인 했습니까? – bwest

답변

2

당신이 당신을 도움이 될 것입니다

doc.Load(fileName); 

대신

doc.LoadXml(xml); 
+0

세 가지 답변 모두 덕분에 지금 작동 중입니다. – bswee

0

필요

XmlDocument doc = new XmlDocument(); 
doc.Load(file_path); 

당신이 호출되는 메소드는 문자열에서 XML을로드합니다. 다른 방법이 필요한 파일에서 읽어야합니다.

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을로드하는 데 사용되는 바와 같이있는 마지막 하나를 사용 :

1

XMLDocumentLoad 여러 가지 방법, them with their description 볼 수 있습니다.

파일에서 XML을로드해야하므로 이 아닌 Load 메서드를 사용해야합니다. 나는 두 번째 방법이 당신의 상황에 더 적합하다고 생각한다. XML 파일의 전체 경로를 전달할 수 있습니다.

관련 문제