2011-01-12 6 views
1

名前と値のペアを取得するためです。WebフォームフィールドをxPathで解析する方法は?

+0

したがって、解析したいHTML文書がありますか? –

+0

xPathはXMLを解析するのに便利ですが、通常はテキストエリアに入力されたXMLを解析しない限り、Webフォームフィールドには必要ありません。より具体的にしてください。 – Damien

答えて

2

これはそれを行う必要があります。

$dom = new DOMDocument; 
$dom->load('somefile.html'); 
$xpath = new DOMXPath($dom); 

$data = array(); 

$inputs = $xpath->query('//input'); 
foreach ($inputs as $input) { 
    if ($name = $input->getAttribute('name')) { 
     $data[$name] = $input->getAttribute('value'); 
    } 
} 

$textareas = $xpath->query('//textarea'); 
foreach ($textareas as $textarea) { 
    if ($name = $textarea->getAttribute('name')) { 
     $data[$name] = $textarea->nodeValue; 
    } 
} 

$options = $xpath->query('//select/option[@selected="selected"]'); 
foreach ($options as $option) { 
    if ($name = $option->parentNode->getAttribute('name')) { 
     $data[$name] = $option->getAttribute('value'); 
    } 
} 

を、あなたのHTML内に複数のフォームを持っているか否かに応じて、()、それらを区別し、余分なループを追加するに照会する二番目の引数を渡したいこと。

配列キー(例:yourfield[])を使用する場合は、少し調整する必要があります。

関連する問題