Обновление
Оказалось, что помимо проблемы с пространством имен XML, о которой говорилось ниже, была еще одна проблема, которая касалась обеих проблем, см. Заключительный комментарий Марка:
Amazon изменил конечную точку с xml-uk.amznxslt.com на 'ecs.amazonaws.co.uk'.
Предположительно XML-пространство имен API рекламы продуктов Amazon обновлено (как подтверждено текущим Схема ), см. Соответствующие операторы:
XSLT-преобразование
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:aws="http://webservices.amazon.com/AWSECommerceService/2005-10-05">
XML-ответ
<ItemSearchResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2011-08-01">
Причина
Пространства имен больше не совпадают, следовательно, соответствующие селекторы в преобразовании XML (например, select="aws:ItemSearchResponse/aws:Items/aws:Item"
) победили 'не соответствует элементам из XML-ответа.
Решение
Обновление пространства имен в вашем преобразовании вероятно устранит проблему, если Amazon только что добавил элементы и т. д.элементы, которые вы на самом деле using в преобразовании (aws:Item
и aws:ASIN
) все еще присутствуют как минимум; в противном случае вам может потребоваться настроить селекторы в соответствии с новой схемой по очереди.
Приложение
Для иллюстрации моего комментария - это результат, который я получаю изприменение преобразования с откорректированным пространством имен, которое также применяется ко всем элементам результата и может соответствующим образом повлиять на ваш последующий конвейер обработки:
<?xml version="1.0" encoding="iso-8859-1"?>
<xml xmlns:aws="http://webservices.amazon.com/AWSECommerceService/2011-08-01">
<root>
<Item>
<gameAsin>B004JMZH4O</gameAsin>
</Item>
</root>
</xml>