0

<h3>, <ul> and <p>下のタグを選択するXPathを作成しようとしていますdiv[@class="content"]が、p[position() > 1 and position() < last() - 1]

これまでのところ私はこれを持っています...

//div[@class="content"]/*[self::h3 or self::ul or self::p[position() > 1 and position() < last() - 1]]//text()

しかし、それは機能しません。

HTMLは次のとおりです:https ://gist.github.com/umrashrf/5167711

4

1 に答える 1

0

OK あなたの XML は整形式ではなかったので、まずこれを修正しました。

<?xml version="1.0" encoding="UTF-8"?>
<div class="content">
<h1/>
<h2>
    <p>Certified Nursing Assistant - Full Time</p>
Job Summary</h2>
<p>Responsible for providing personal care and assistance for residents in long    
term care facility.</p>
<h2>
</h2>
<h3>Essential Functions:</h3>
<ul>
    <li>
        <span style="line-height: 1.5;">Responsible</span> for providing   
personal care and assistance to residents </li>
    <li>Assist residents in and out of bed, dressing, feeding, grooming and 
personal hygiene. </li>
    <li>Provide basic treatments as required and directed by nursing staff.  
</li>
    <li>Responsible for observing and reporting changes in residents' physical 
and emotional conditions to charge nurse. </li>
</ul>
<h3>Qualifications: </h3>
<p>Education:</p>
<ul>
    <li>High school diploma or equivalent </li>
    <li>Successful completion of state approved certified nursing assistance 
course </li>
</ul>
<p>Experience:</p>
<ul>
    <li>Previous health care related experience preferred </li>
</ul>
<a id="ctl00_ctl01_namelink" class="btn" href="employment-application.aspx?
positionid=34">Apply Online</a>
<br/>
<br/>
<h2>
Apply in Person</h2>
<p>
To apply in persion please stop by Shenandoah Medical Center to pick up a job 
application.</p>
<h2>
Apply by Mail</h2>
<p>
To apply by mail, download and print <a target="_blank" href="/filesimages/Careers/SMC 
Employment Application.pdf">
    this form</a>. Please fill out the application and then mail to:<br/>
    <br/>
    <strong>Shenandoah Medical Center, Human Resources<br/>
    </strong>300 Pershing Avenue<br/>
Shenandoah, IA 51601</p>
</div>

私があなたの質問を正しく理解していれば、div[@class="content"] の子ノードであるすべての h3、ul、および p タグを見つけようとしており、選択された各子ノードは [position() > 1] の条件を満たさなければなりません。および position() < last() - 1]。このために、この単一の XPATH で十分だと思います:

//div[@class="content"]/h3[position() > 1 and position() < last() - 1]  |        
//div[@class="content"]/p[position() > 1 and position() < last() - 1]  |  
//div[@class="content"]/ul[position() > 1 and position() < last() - 1] 
于 2013-03-15T17:33:35.823 に答える