У меня есть узел Nokogiri, который я делаю по запросу xpath, на котором должен возвращаться узел NodeSet. Вместо этого он возвращает строку. Я проверил источник xml и обнаружил, что данные содержат только один элемент, а не многие.Результаты запроса Nokogiri xpath в String вместо NodeSet
Должен ли он возвращать узел NodeSet с одним значением вместо строки? Как мне с этим справиться?
Вот псевдо XML, который правильно возвращает NodeSet 2 записей:
<root>
<products>
<product>
<productID>1</productID>
</product>
<product>
<productID>2</productID>
</product>
</product>
</root>
Вот псевдо XPath запроса:
//root/products/product
Если XML содержит только один продукт, Я получаю строку вместо NodeSet с 1 записью
<root>
<products>
<product>
<productID>1</productID>
</product>
</product>
</root>
Обновление 6/12/2012: Я по-прежнему считаю, что это ошибка в Nokogiri. Вышеописанный псевдо xml не воспроизводит условие, однако у меня есть несколько примеров xml от клиента, которые воспроизводят проблему. Возможно, я мог бы опубликовать обфускацию версии xml. В любом случае я изменил код, чтобы использовать XmlSimple вместо Nokogiri.
Это зависит от вашего XPath, но нет никакого способа, мы можем сказать, если вы не размещаете его. – JWiley
Я обновил его с помощью запроса _pseudo_ xml и xpath. –
Почему * псевдо *? Если предоставленный XML-документ не является фактическим, как вы можете ожидать, что люди помогут? –