Работая с xpath (который был не очень длинным), я наткнулся на что-то странное.Почему выражение выбора позиции xpath возвращает несколько узлов?
укороченная версия XML (Полный XML является here и снимок доступен на pastebin):
<?xml version="1.0" encoding="utf-8" ?>
<body copyright="All data copyright San Francisco Muni 2013.">
<route tag="all">
<message id="10268" creator="jflynn" startBoundary="1378121400000" startBoundaryStr="Mon, Sep 02 04:30:00 PDT 2013" endBoundary="1378191540000" endBoundaryStr="Mon, Sep 02 23:59:00 PDT 2013" sendToBuses="false">
<text>Sunday schedules today.</text>
</message>
</route>
<route tag="44">
<message id="10221" creator="mlee" startBoundary="1377525600000" startBoundaryStr="Mon, Aug 26 07:00:00 PDT 2013" endBoundary="1382857140000" endBoundaryStr="Sat, Oct 26 23:59:00 PDT 2013" sendToBuses="false">
<routeConfiguredForMessage tag="44"> <stop tag="6420" title="Silver Ave & Revere Ave" />
</routeConfiguredForMessage>
<text>Stop moved across Revere During Construction</text>
</message>
<message id="10222" creator="mlee" startBoundary="1377525600000" startBoundaryStr="Mon, Aug 26 07:00:00 PDT 2013" endBoundary="1382857140000" endBoundaryStr="Sat, Oct 26 23:59:00 PDT 2013" sendToBuses="false">
<routeConfiguredForMessage tag="44"> <stop tag="6420" title="Silver Ave & Revere Ave" />
</routeConfiguredForMessage>
<text>Stop moved across Revere During Construction</text>
</message>
</route>
</body>
Выражение
//route[1]
вернулся первый route
узел, как я ожидал. Тем не менее, были возвращены при попытке выбрать первый message
узел с
//message[1]
несколько message
узлов, а не только один.
Сначала я предполагал, что это была проблема платформы, но тестирование на Android, Desktop Java и пару онлайн-тестеров xpath я получаю одинаковые результаты.
В чем может быть проблема?
Очень хороший и фундаментальный вопрос .. * + 1 * для того же .. –
Возможный дубликат [получение первого узла в наборе результатов xpath] (http://stackoverflow.com/questions/9199415/getting-first- node-in-xpath-result-set) –