0

PHP 変数の HTML コードからデータを抽出しようとしています。

HTML は次のとおりです。

<tr class="tr1">
  <td align="right">
    1.
  </td>
  <td align="left">
     <input type="hidden" name="now[8116632]" value="98" />
     <input type="hidden" name="add[8116632]" value="39" />
     <input type="hidden" name="sec_value[8116632]" value="45720000" />
     <div id="uid8116632"></div>
  </td>
  <td align="left">
    <a href="playerInfo.phtml?pid=8116632" target="_blank"
    onclick="return(openSmallWindow('playerInfo.phtml?pid=8116632',
    c41c569a1b9c46c4cbc4bc58f37cb05f'))">kana</a>
  </td>
  <td align="right">
    98
  </td>
  <td align="right">
    45.720.000
  </td>
</tr>

<tr class="tr2">
  <td align="right">
    2.
  </td>
  <td align="left">
    <input type="hidden" name="now[8121292]" value="90" />
    <input type="hidden" name="add[8121292]" value="45" />
    <input type="hidden" name="sec_value[8121292]" value="36500000" />
    <div id="uid8121292"></div>
  </td>
  <td align="left">
    <a href="playerInfo.phtml?pid=8121292" target="_blank"
    onclick="return(openSmallWindow('playerInfo.phtml?pid=8121292',
    'c41c569a1b9c46c4cbc4bc58f37cb05f'))">Xoán Manuel Pérez Chaves</a>
  </td>
  <td align="right">
    90
  </td>
  <td align="right">
    36.500.000
  </td>
</tr>

このコードでは、次を抽出します。

<td align="right">1.</td> 

この数として$position

<input type="hidden" name="now[8116632]" value="98" /> 

属性名の角括弧内の ID 番号を $id、値を $value

<input type="hidden" name="sec_value[8121292]" value="36500000" /> 

この値として$price

これまでの私のphpコードは次のとおりです。

$DOM = new DOMDocument;
$DOM->loadHTML($result2);

$xpath = new DomXpath($DOM);
$div = $xpath->query('//*[@class="tr1"]');

前に話した変数を取得するにはどうすればよいでしょうか。$position,$id,$value and $price

前もって感謝します

4

2 に答える 2

2

要素テキストには、次のようなものを使用します

.../td[@align='right']/text()

属性値には次のようなものを使用します

.../td[@align='left']/input[1]/@value

ブラケットを解析するには、部分文字列関数を使用する必要があり、これは面倒です。substring-before と substring-after は、おそらく探しているものです。参照としてこれを確認してください: xpath: 文字列操作

于 2013-08-28T00:23:29.677 に答える
1

非表示の型でより多くの入力を使用し、次のような適切な名前を付けたいと思います。

<tr class="tr1">
<td align="right">1.</td>
<input type="hidden" name="position" value="1" />
<input type="hidden" name="id" value="765434" />
<input type="hidden" name="value" value="89898989" />
<input type="hidden" name="price" value="100" />
<td>Some description</td>
</tr>

そのようなコードを維持することははるかに簡単で、php で変数にアクセスすることに問題はありません。これが今あなたが求めているものである場合は申し訳ありませんが、私にとっては合理的な解決策です (すべての事実を知っているわけではないかもしれません)。

この HTML を変更できない場合は、xpath の代わりに SimpleHTMLDom ライブラリを確認することをお勧めします。ここにいくつかの情報があります。

http://simplehtmldom.sourceforge.net/manual.htm

于 2013-08-27T23:35:50.047 に答える