如何直接读取xml文件以获取XElement值?

时间:2011-02-26 00:41:42

标签: c# .net xmlreader xelement

现在我正在使用:

XElement xe = XElement.ReadFrom

需要XmlReader

XmlReader reader = XmlTextReader.Create

需要一个字符串,这需要我传递StringReader

new StringReader

需要TextReader/StreamReader才能最终将文件路径传递给它:

TextReader textReader = new StreamReader ( file );

这是最简单的方法吗?我已经有使用XElement的代码,所以它工作正常,但我想减少从xml文件中获取XElement的步骤数。类似的东西:

XElement xe = XElement.ReadFrom (string file);

有什么想法吗?

2 个答案:

答案 0 :(得分:8)

琼,请使用XDocument.Load(string)

  

XDocument doc =   XDocument.Load( “PurchaseOrder.xml”);

一些意见:

  1. 你永远不应该使用XmlTextReader.Create。使用XmlReader.Create。它是一个静态方法,因此使用哪个派生类来引用它并没有什么区别。使用XmlTextReader.Create会产生误导,因为它看起来与XmlReader.Create不同。不是。
  2. XmlReader.Create有一个接受字符串的重载,就像XDocument.Load一样:XmlReader.Create(string inputUri)
  3. 实际上没有XElement.ReadFrom这样的东西。它实际上是XNode.ReadFrom

答案 1 :(得分:3)

XElement.ReadFrom(XmlReader.Create(fileName))

但显式管理文件流对象和XmlReader对象更好 - 你知道什么时候关闭流......