Xpath для дочернего тега

#xml #xpath

#xml #xpath

Вопрос:

 <div class="hello1">
    <a href="random/url/hi" class="title">random text</a> 
</div>
 

Я хочу получить URL-адрес «random/url / hi», и я написал этот XPATH, чтобы получить его: //div[@class=»hello1″]/a[1]

Текст внутри тегов < /a> всегда меняется, поэтому я не могу на это полагаться. Я также не знаю, есть ли другой атрибут класса с «title», поэтому я тоже не могу его использовать. Все, что я знаю, это то, что мне нужен первый тег < /a> внутри класса div «hello1»

Почему мой XPATH не работает? Может кто-нибудь помочь мне написать другое выражение?

Комментарии:

1. Я думаю, что путь подходит для выбора a элемента, но вы говорите, что вам нужен URL, поэтому //div[@class = 'hello']/a[1]/@href он кажется более подходящим. Если в пути вы ничего не выбираете, вам необходимо предоставить более подробную информацию о входном XML и используемом вами XPath API.

2. «Почему мой XPATH не работает?» — Мой хрустальный шар говорит, потому что вы имеете дело с XHTML и забыли использовать правильное пространство имен в вашем выражении XPath.

3. Вам нужна дополнительная помощь?

Ответ №1:

Вы должны быть в состоянии получить href таким образом.

 //div[@class='hello1']/a[1]/@href
 

Комментарии:

1. С XPath индекс начинается с 1, а не с 0, поэтому путь, указанный в сообщении, кажется подходящим для выбора первого a дочернего элемента.

2. Извините, это была моя ошибка, о которой я не думал, когда публиковал это. я изменил свой ответ и протестировал на xpath tester. Это прямо сейчас.