2009-09-10 3 views
1

Я планирую использовать XPath для запроса XML-файла. Не могли бы вы указать мне ссылку, в которой указаны преимущества использования XPath? Будет ли использование XPath повысить производительность?Использование XPath в C# .NET

Я использую .NET Framework 2.0. В настоящее время я повторяюсь через узел.

XmlReaderSettings settings = new XmlReaderSettings(); 
settings.IgnoreWhitespace = true; 
XmlReader reader = XmlReader.Create("mydata.xml", settings); 
XmlReader inner; 
while (reader.Read()) 
{ 
if (reader.Name == "xyz" && reader.NodeType == XmlNodeType.Element) 
{ 
    inner = reader.ReadSubtree(); 
    inner.Skip(); 
    inner.Read(); 
    ......... //some changes to node 
    inner.Close(); 
} 
} 
reader.Close(); 
+3

преимущества использования XPath, по сравнению с чем? Если бы вы в противном случае выполняли итерацию и поиск по узлам с помощью DOM, вы бы использовали LINQ для xml? С чем вы сравниваете XPath? –

+0

Будет ли это улучшать производительность по сравнению с чем? –

+0

В настоящее время я повторяю узел через цикл while. Благодарю. – kobra

ответ

3

Я слышал о вещах около LINQ to XML. Кажется, что он работает даже лучше, чем xPath в соответствии с ссылкой blog.dreamlabsolutions.com ниже.

Пример кода на LINQ к XML Query из blogs.block4.net:

var query = from c in xmlFile.Elements("book") 
      where (string)c.Attribute("checked-out").Value == "false"    
      select c; 

foreach (var book in query) 
{ 
    Console.WriteLine("\”{0}\” is available", book.Element("title").Value); 
} 

Дополнительная литература:
* xml.com
* weblogs.asp.net
* blog.dreamlabsolutions.com

+0

Большое спасибо за ваш ответ. Возможно ли или желательно использовать LINQ в .NET Framework 2.0. Спасибо – kobra

+0

Да. System.Data.Linq - это сборка – RSolberg

+1

LINQ может сделать ваш код более читабельным/поддерживаемым (не говоря уже о том, чтобы легче писать). Если производительность будет достаточной, я бы выбрал техническую поддержку. – TrueWill

Смежные вопросы