#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. Это прямо сейчас.