Выполнение удаления изображений с использованием 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);
почему "
Благодарю.
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>