Выполнение удаления изображений с использованием YQL с минимально возможным использованием ресурсов, т.е. с наименьшим количеством запросов

Я пытаюсь выполнить какой-то инструмент для удаления изображений, который позволяет пользователю удалять все изображения, содержащиеся на данной странице, с помощью xpath обрабатывать полученные изображения, чтобы найти, которые имеют теги alt, а какие нет и возвращать результат в виде двух отдельных объектов json.

т.е. {alted: ["", ""], nonAlted: ["", ""]}

Теперь возникает моя проблема, хотя я могу очистить страницу и получить все изображения и разделить их на категории измененных и не измененных, я не могу поместить их в объект ответа!

Я думаю, что для дальнейшего разъяснения моей проблемы было бы лучше добавить некоторый код, поэтому следующий код - это то, что я использую в блоке исполнения моей таблицы YQL:

query = "select * from html where url='http://www.mysite.com/page-path' and xpath='//li'";
var result = y.query(query);

y.log(result.results..img.(@alt));

var querieselement = <urls/>; 
querieselement.query = result.results..img.(@alt);

response.object = querieselement;

Поэтому мой вопрос заключается в том, как я могу установить объект ответа, чтобы он содержал обработанный список изображений, обратите внимание, что после выполнения запроса результат не показывает никаких данных, хотя журнал показывает список, надеюсь, кто-то может указать мне на причину этой проблемы.


PS Причина, по которой я упомянул "использование ресурсов" в названии, заключается в том, что я знаю о способности выполнять отдельные вызовы для каждой категории изображений, что означает два раза отбрасывать одну и ту же страницу, что, на мой взгляд, неэффективно.


PS Я также был бы рад, если кто-то может помочь мне понять, что означают эти две строки

querieselement = <urls/>;
querieselement.query = result.results..img.(@alt);

почему "" и почему "querieselement.query", я не знаю, что они должны делать, когда они, кажется, выполняют критически важную работу, так как их изменение нарушает код.

Благодарю.

1 ответ

Итак, мой вопрос, как я могу установить объект ответа, чтобы содержать обработанный список изображений

Используйте таблицу стилей, а не селектор XPath:

 select * from xslt where url="http://www.mysite.com/page-path" and stylesheet="http://www.mysite.com/page-path.xsl"

Определите таблицу стилей следующим образом:

  <xsl:template match="img[@alt]">
    <xsl:for-each select="@alt">
      <script>
        alt.push(<xsl:value-of select="."/>);
      </script>
    </xsl:for-each>
  </xsl:template>

  <xsl:template match="img[not(@alt)]">
    <xsl:for-each select="@src">
      <script>
        noalt.push(<xsl:value-of select="."/>);
      </script>
    </xsl:for-each>
  </xsl:template>
Другие вопросы по тегам