Как создать запрос с помощью выражения XPath XML с помощью Visual C#

Переводы статьи Переводы статьи
Код статьи: 308333 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

В этой статье показано, как запросить XPathDocument объект с помощью выражения языка XML Path (XPath) с помощью XPathNavigator класс. XPath используется для вычисления выражений и выбор конкретных узлов в документе программными средствами.

Требования

В следующем списке представлены оборудования, программного обеспечения, сетевой инфраструктуры и пакетов обновления, необходимо:
  • Visual C#
Предполагается, что вы знакомы с следующие темы:
  • Терминология XML.
  • Создание и чтение XML-файла
  • Синтаксис XPath

Как создать запрос XML с помощью выражения XPath

  1. Создайте новый Visual C# консольное приложение в Visual Studio.

    ПРИМЕЧАНИЕ: В этом примере используется файл Books.XML. Можно создать собственный файл Books.xml или можно использовать образец, который входит в состав.Примеры использования программы NET разработки Kit (SDK). Если не имеют установленных примеры использования и не хотите устанавливать их обратитесь к разделу «Ссылки» для Books.xml место загрузки. При наличии установленной примеры использования файла можно найти в следующей папке:
    Программа Files\Microsoft.NET\FrameworkSDK\Samples\Quickstart\Howto\Samples\Xml\Transformxml\VB
    Необходимо скопировать файл в папку \Bin\Debug, которая находится в папке, в которой создан данный проект.
  2. Убедитесь, что проект ссылается на System.XML пространство имен.
  3. Использование с помощью Инструкция по XML и XPath пространства имен таким образом, не требуется указывать объявления в этих пространствах имен в коде. Необходимо использовать с помощью инструкции перед всеми остальными объявлениями, выглядит следующим образом:
    using System.Xml;
    using System.Xml.XPath;
    					
  4. Объявите необходимые переменные. Объявления XPathDocument объект для хранения XML-документа XpathNavigator объект для оценки выражений XPath и XPathNodeIterator объект для перебора всех выбранных узлов. Объявления Строка объект для хранения выражений XPath. Добавьте в код объявления Основной функция класса Class1.
       XPathNavigator nav;
       XPathDocument docNav;
       XPathNodeIterator NodeIter;
       String strExpression;
    					
  5. Загрузка XPathDocument с помощью примера файл Books.xml. В XPathDocument класс использует таблицы стилей преобразования (XSLT) для обеспечения быстрого и ориентирована на производительность кэширования для обработки XML-документов. Аналогично для модели объектов документа XML (DOM), но оптимизирован для обработки XSLT и модели данных XPath.
        // Open the XML.
        docNav = new XPathDocument(@"c:\books.xml");
    					
  6. Создание XPathNavigator из документа. В XPathNavigator объект используется для запросов XPath только для чтения. Запросы XPath может вернуть полученное значение или множество узлов.
         // Create a navigator to query with XPath.
         nav = docNav.CreateNavigator();
    					
  7. Создайте выражение XPath для поиска Средняя стоимость книги. Это выражение XPath возвращает одиночное значение. Более подробная информация об синтаксис XPath содержатся в разделе «Синтаксис XPath» в разделе «Ссылки».
         // Find the average cost of a book.
         // This expression uses standard XPath syntax.
         strExpression = "sum(/bookstore/book/price) div count(/bookstore/book/price)";
    					
  8. Использование Оценка метод XPathNavigator Объект, для вычисления выражения XPath. В Оценка метод возвращает результат выражения.
        // Use the Evaluate method to return the evaluated expression.
        Console.WriteLine("The average cost of the books are {0}", nav.Evaluate(strExpression));
  9. Создайте выражение XPath для поиска всех книг, стоимостью более чем десяти долларов. Это выражение XPath возвращает только названия узлов из источника XML.
        // Find the title of the books that are greater then $10.00.
        strExpression = "/bookstore/book/title[../price>10.00]";
    					
  10. Создание XPathNodeIterator для узлов, выбранных с помощью Выберите метод XPathNavigator. В XPathNodeIterator Представляет коллекцию узлов XPath и поэтому поддерживает операции на эту коллекцию узлов.
        // Select the node and place the results in an iterator.
        NodeIter = nav.Select(strExpression);
  11. Использование XPathNodeIterator, который был возвращен из Выберите метод XPathNavigator, чтобы просмотреть выбранные узлы. В этом случае можно использовать Метод MoveNext метод XPathNodeIterator для перебора всех выбранных узлов.
      Console.WriteLine("List of expensive books:");
      //Iterate through the results showing the element value.
      while (NodeIter.MoveNext())
      {
          Console.WriteLine("Book Title: {0}", NodeIter.Current.Value);
      };
    					
  12. Использование ReadLine метод, чтобы добавить паузу в конце отображения консоли более легко отображать результаты выше.
        // Pause
        Console.ReadLine();
    					
  13. Построение и запуск проекта. Обратите внимание на то, что результаты отображаются в окне консоли.

Устранение неполадок

При тестировании кода может появиться следующее сообщение об ошибке исключения:
Произошло необработанное исключение типа «System.Xml.XmlException» в System.xml.dll

Дополнительные сведения: ошибка системы.
В следующей строке кода возникает ошибка исключения:
docNav = new XPathDocument("c:\\books.xml");
				
Исключение ошибка вызвана инструкция недопустимый обработки. Например инструкции обработки может содержать лишних пробелов. Ниже приведен пример инструкции недопустимый обработки:
<?xml version='1.0' ?>
Чтобы разрешить исключение, выполните одно из следующих:
  • Исправьте инструкцию обработки недопустимых. Ниже приведен пример допустимой инструкцией по обработке.
    <?xml version='1.0'?>
    -ИЛИ-
  • Удалите из файла Books.xml инструкции обработки XML.

Ссылки

Следующий файл доступен для загрузки из центра загрузки Майкрософт:
Свернуть это изображениеРазвернуть это изображение
Загрузить
Загрузить файл Books.xml
Для получения дополнительных сведений посетите следующие веб-узлы корпорации Майкрософт:
В XML.NET:.XML NET Framework и предложения в C# простого, масштабируемые манипулирование данными
http://MSDN.Microsoft.com/msdnmag/issues/01/01/XML/Default.aspx

Класс XPathNavigator
http://MSDN.Microsoft.com/en-us/library/System.XML.XPath.XPathNavigator.aspx

Класс XPathDocument
http://MSDN.Microsoft.com/en-us/library/System.XML.XPath.XPathDocument.aspx

Класс XPathNodeIterator
http://MSDN.Microsoft.com/en-us/library/System.XML.XPath.XPathNodeIterator.aspx

Преобразования XSLT с помощью класса XslTransform
http://MSDN.Microsoft.com/en-us/library/47yh29a9.aspx

Синтаксис XPath
http://msdn2.Microsoft.com/en-us/library/ms763742.aspx
Для получения дополнительных сведений о XPath посетите следующий веб-узел консорциума World Wide Web (W3C):
Язык XML Path (XPath)
Версии 1.0: Рекомендация W3C 16 ноября 1999
http://www.w3.org/TR/1999/rec-XPath-19991116

Свойства

Код статьи: 308333 - Последний отзыв: 6 июня 2011 г. - Revision: 4.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Visual C# 2008 Express Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Ключевые слова: 
kbdownload kbhowtomaster kbmt KB308333 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:308333

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com