Как создать решение Visual Studio в более низкой версии Visual Studio? [Дубликат]

phpQuery и QueryPath чрезвычайно похожи в репликации свободного API jQuery. Вот почему они - два из самых простых подходов к правильно анализируют HTML в PHP.

Примеры для QueryPath

В основном вы сначала создаете запрашиваемое дерево DOM из строки HTML:

 $qp = qp("

title

..."); // or give filename or URL

Результирующий объект содержит полное древовидное представление документа HTML. Он может быть пройден с использованием методов DOM. Но общий подход заключается в использовании селекторов CSS, например, в jQuery:

 $qp->find("div.classname")->children()->...;

 foreach ($qp->find("p img") as $img) {
     print qp($img)->attr("src");
 }

. В основном вы хотите использовать простые #id и .class или DIV селектор тэгов для ->find(). Но вы также можете использовать операторы XPath , которые иногда бывают быстрее. Также типичные методы jQuery, такие как ->children() и ->text() и особенно ->attr(), упрощают извлечение правильных фрагментов HTML. (И уже имеют свои SGML-объекты, декодированные.)

 $qp->xpath("//div/p[1]");  // get first paragraph in a div

QueryPath также позволяет вводить новые теги в поток (->append), а затем выводить и префикс обновленного документа (->writeHTML). Он может не только анализировать искаженный HTML, но также различные диалекты XML (с пространствами имен) и даже извлекать данные из микроформатов HTML (XFN, vCard).

 $qp->find("a[target=_blank]")->toggleClass("usability-blunder");

.

phpQuery или QueryPath?

Обычно QueryPath лучше подходит для манипулирования документами. В то время как phpQuery также реализует некоторые псевдо-AJAX-методы (только HTTP-запросы), более похожие на jQuery. Говорят, что phpQuery часто быстрее, чем QueryPath (из-за меньшего количества общих функций).

Для получения дополнительной информации о различиях см. это сравнение на машине обратного пути от tagbyte.org . (Оригинальный источник пропал без вести, так что вот ссылка интернет-архива. Да, вы все равно можете найти недостающие страницы, люди.)

И вот всеобъемлющее введение QueryPath .

Преимущества

  • Простота и надежность
  • Простые в использовании альтернативы ->find("a img, a object, div a")
  • Надлежащее удаление данных (по сравнению с регулярным выражением grepping)

6
задан MikeJansen 9 December 2015 в 22:39
поделиться

2 ответа

Да, но это необходимо сделать для каждого проекта. Это опция, доступная в меню «Сборка» свойств проекта. Нажмите «Дополнительно» в правом нижнем углу, затем выберите нужную версию языка.

Примечание. Существует ошибка VS2015 (которая исправлена в редакторе 1), который вызывает ложные негативы при авто-свойствах только для получения. Чтобы получить наилучшие результаты, убедитесь, что вы установили последнее обновление.

5
ответ дан BJ Myers 31 August 2018 в 16:17
поделиться

Чтобы согласовать принятый ответ, чтобы быстро реализовать это в 100-х проектах и ​​получить все конфигурации, а не только определенную конфигурацию, я массировал файлы csproj и вставлял узел <LangVersion>5</LangVersion> в качестве первого дочернего внутри первого голого безусловного узла <PropertyGroup>:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <LangVersion>5</LangVersion>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
1
ответ дан MikeJansen 31 August 2018 в 16:17
поделиться