2012-03-15 6 views
2

私はhtmlファイルを持っていて、 "Stn Code"の2番目のTHコンテンツと "Route No."の3番目のTHコンテンツを持つテーブルを(多くの中で)探したいと思っています。この特定のテーブルを取得するには、PHPのXPATH式は何でしょうか:これのためのXPATH式は何ですか

<table cellpadding="0" cellspacing="0" border="0"> 
    <tbody> 
     <tr class="heading_table_top"> 
      <th width="6%">SNo</th> 
      <th width="9%">Stn Code</th> 
      <th width="17%">Stn Name</th> 
      <th width="9%">Route No.</th> 
      <th width="9%">Arrival Time</th> 
      <th width="9%">Dep. Time</th> 
      <th width="15%">Halt Time (In Minutes)</th> 
      <th width="9%">Distance</th> 
      <th width="6%">Day</th> 
      <th width="20%">Remark</th> 

.............................. .....

答えて

1

これは、コンテンツが含まれthとは無関係に指定されたコンテンツを持つテーブルを見つける:

//table[descendant::th="Stn Code" and descendant::th="Route No."] 

descendant axisがコンテキストノードの子孫が含まれ、子孫は子供の子、子の子などである。したがって、子孫軸には、属性または名前空間ノードは決して含まれません。あなたは、コンテンツが特定th要素であることを確認して使用したい場合はdemo

n位置、例えばですth[n]駅コード 『との第三THコンテンツ『ルート番号』「の第二TH内容』のため。あなたはth[2]th[3]を使用すると思います。ポジションは、1-基づいています。

//table[descendant::th[2]="Stn Code" and descendant::th[3]="Route No."] 

なお、あなたの例ではマークアップ「ルート番号は」ので、上記XPathは結果ノードにテーブルを生成しませんth[4]である。

Also have a look at this XPath tutorial

+0

おかげで私のWebページでは、このテーブルは、多くのテーブルの下にラップされ、すべてが返さなっています私はこの文章の直後の子孫と共に1人だけを欲しい。 – user774250

+0

$ dom_xpath-> query( 'table // tr [th [2] = "Stnコード"とth [4] = "ルート番号"とth [7] = "停止時間(分)」]/parent :: * '); – user774250

+0

@ user774250 try//テーブル[tbody/tr/th [2] = 'Stnコード'とtbody/tr/th [4] = 'ルート番号' – Gordon

1

これは動作するはずです:

//table/tbody/tr[th[2]='Stn Code'][th[3]='Route No.']/../.. 

編集:私の最初のexpessionが、これはテーブルを選択する必要があり、tr要素を選択しました。

関連する問題