2016-07-20 4 views
2

Ich habe Code, der dem folgenden Format folgt. Ich versuche, Xpath zu verwenden, um den zweiten Absatz auszuwählen (zB der Absatz, der beginnt: Betreutes Wohnen ist eine gute Option für alle Bereiche des Lebens ... Da das div und der Absatz keine einfachen Bezeichner haben, habe ich versucht:Auswählen von Text mit Xpath, wenn nur die vorhergehenden Elemente mit Bezeichnern versehen sind

Ich würde denken, dass der erste Teil //div....29207 ']] das div auswählen würde, dem das div mit der ID 29207 vorausgeht. Dann würde der/p [2] den zweiten Absatz wählen

.
<div id="w_29207" class=" city short-description"> 
<div> 
<p> 
<span itemscope itemtype="http://schema.org/Product"> 
<meta itemprop="name" content="Albuquerque, NM Assisted Living Facilities" />Choose from over 38 Assisted Living communities in Albuquerque, NM and 
<span itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">see 
<meta itemprop="reviewCount" content="360 reviews "/>360 reviews with a 
<meta itemprop="ratingValue" content="4.0 stars out of 5" />4.0 average rating. 
<meta itemprop="description" content="Albuquerque attracts seniors looking for an active senior living experience. The city enjoys four distinct seasons with stunning winters and sunny summers. Seniors in Albuquerque find various cultural outlets and outdoor recreation including an active theater community, festivals, hiking and climbing. " /> We've helped 9,287 families in Albuquerque, NM where Assisted Living ranges from $</span><span itemprop='offerDetails' itemscope itemtype='http://schema.org/AggregateOffer'><span content='1,550' itemprop='lowPrice'>1,550</span> to $<span content='6,100' itemprop='highPrice'>6,100</span>. 
<meta content='USD' itemprop='priceCurrency'> 

</span></span></p> 

<p>Assisted living is a great option for all walks of life. Whether you or a loved has experienced a life changing health diagnosis or you want to shed the burdens of home maintenance from your life, assisted living in Albuquerque could be the perfect match for you. Many seniors in Albuquerque have chosen to transition to assisted living so they can enjoy a sense of community with like-minded neighbors. Another perk of assisted living is for seniors that may need assistance with daily tasks such as, meal preparation, medication management, or help getting to appointments. 
</p> 

+0

Ich bitte kommen Sie zurück und akzeptieren Sie die richtige von diesen und stellen Sie diese Frage als gelöst ... :) –

Antwort

0

p [2] wird funktionieren, wenn p Elemente Geschwister sind.

Einige der Optionen:

//*[contains(@class, 'city short-description')]/div/p[2] 
 

 
//*[@class='city short-description']/div/p[2] 
 

 
//div[contains(@class, 'city')]/div/p[2] 
 

 
//div[contains(@id, 'w_')]/div/p[2]

Wenn Sie den Text und nicht das Element hinzufügen ein/text() nach p [2]

0

Das Problem zurückgeben müssen scheint zu sein, dass die zweite <div> kein Geschwister der <div id="w_29207"> ist, ist es ein Kind davon (es sei denn, der HTML-Code falsch geschrieben). Deshalb wählt //div[preceding-sibling::div[@id='w_29207']] nicht die zweite <div>.

Stattdessen könnten Sie

//div[@id='w_29207']/div[1]/p[2] 

oder eine der Optionen, die genannten @lauda, ​​je nachdem, wie genau Sie haben über das id-Attribut sein.

0

Sie können mit versuchen xpath folgenden auch: -

//p[not(child::*)] 

oder

//p[ancestor::div[@id='w_29207']][2] 

oder

//div[@id='w_29207']/descendant::p[2] 

oder

//p[ancestor::div[@id='w_29207'] and not(child::*)] 

Hoffe es hilft .. :)

Verwandte Themen