преобразовать значение узла в строку - PullRequest
1 голос
/ 06 января 2012

Работа на дом HTML.Я хочу преобразовать значение узла в строку:

 $html = @$dom->loadHTMLFile('url');


  $dom->preserveWhiteSpace = false;


  $tables = $dom->getElementsByTagName('body');


  $rows = $tables->item(0)->getElementsByTagName('tr');

  // loop over the table rows
  foreach ($rows as $text =>$row)
  {
$t=1;

   // get each column by tag name
      $cols = $row->getElementsByTagName('td');
//getting values

$rr = @$cols->item(0)->nodeValue;

print $rr; ( it prints values of all 'td' tag fine)
}
print $rr; ( it prints nothing) I want it to print here 

?>

Я хочу преобразовать значения узла в строку для дальнейшей манипуляции.

Ответы [ 4 ]

1 голос
/ 10 января 2012
  // new dom object
  $dom = new DOMDocument();

  //load the html
  $html = @$dom->loadHTMLFile('http://webapp-da1-01.corp.adobe.com:8300/cfusion/bootstrap/');

  //discard white space
  $dom->preserveWhiteSpace = false;

  //the table by its tag name
  $tables = $dom->getElementsByTagName('head');

//get all rows from the table
  $la=array();
$rows = $tables->item(0)->getElementsByTagName('tr');

  // loop over the table rows
$array = array();
  foreach ($rows as $text =>$row)
  {
$t=1;
$tt=$text;
   // get each column by tag name
 $cols = $row->getElementsByTagName('td');
   // echo the values
      #echo @$cols->item(0)->nodeValue.'';
//      echo @$cols->item(1)->nodeValue.'';
$array[$row] = @$cols->item($t)->nodeValue;
}
print_r ($array);

печатает массив ( ) ничего более. я также использовал "$ cols-> item (0) -> nodeValue;"

1 голос
/ 06 января 2012

Каждый раз, когда вы перебираете foreach, вы перезаписываете значение переменной $rr. Второй print $rr напечатает значение последнего td - если он пустой, то ничего не будет печататься.

Если вы пытаетесь напечатать все значений, вместо этого запишите их в массив:

$rr = array();
foreach($rows as $text =>$row) {
  $rr[] = $cols->item(0)->nodeValue;
}
print_r($rr);
0 голосов
/ 06 января 2012

вы пробовали @ $ cols-> item (0) -> textContent

0 голосов
/ 06 января 2012

Используйте DOM :: saveXML или DOM :: saveHTML для преобразования значения узла в строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...