xpath условная проверка точки данных XML - PullRequest
1 голос
/ 28 марта 2012

ниже - это фрагмент XML, который я получаю в качестве ввода, и мне нужно выбрать номер телефона, найденный в узле (732) 462-13112, если промежуток в этом примере кода fed.com пуст.

Я начинаю с xpath, чтобы выяснить единственную уверенность, которую я вижу в XML, и это "// nobr", как я могу перейти к промежутку, содержащему ted.com, и проверить, есть ли что-нибудь?

<div> 
    <div></div>
    <span class="pp-headline-item pp-headline-phone"> 
        <span class="telephone" dir="ltr"> 
            <nobr>(732) 462-1311</nobr> 
            <span class="pp-headline-phone-label" style="display:none">()</span>
        </span>&#8206;
    </span>  
    <span> &middot; </span> 
    <span class="pp-headline-item pp-headline-authority-page"> 
        <span>
            <a href="http://maps.google.com/local_url?q=http://www.federicis.com/&amp;dq=07746+pizza">
                <span>fed.com</span>
            </a>
        </span> 
    </span>  
</div>

1 Ответ

2 голосов
/ 29 марта 2012

Если я правильно понимаю ваш вопрос, вы можете использовать следующее:

/div[//a//span[not(text())]]//nobr/text()

Это вернет номер телефона, найденный в nobr, если диапазон, содержащий fed.com, пуст, в противном случае он вернет пустойstring.

Edit :

Если у вас есть несколько тегов под основным div, вы можете использовать это для извлечения определенного диапазона:

//a//span[@class='pp-headline-item pp-headline-authority-page']//a/span[not(text())]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...