DOMDocument en php

Je viens de commencer la lecture de la documentation et des exemples sur les DOM, afin d'explorer et d'analyser le document.

Par exemple, j'ai une partie de document indiqué ci-dessous:

    <div id="showContent">
    <table>
    <tr>
        <td>
         Crap
        </td>
    </tr>
<tr>
          <td width="172" valign="top"><a href="link"><img height="91" border="0" width="172" class="" src="img"></a></td>
          <td width="10">&nbsp;</td>
          <td valign="top"><table cellspacing="0" cellpadding="0" border="0">
              <tbody><tr>
                <td height="30"><a class="px11" href="link">title</a><a><br>
                    <span class="px10"></span>
                </a></td>
              </tr>
              <tr>
                <td><img height="1" width="580" src="crap"></td>
              </tr>
              <tr>
                <td align="right">
                    <a href="link"><img height="16" border="0" width="65" src="/buy"></a>
                </td>
              </tr>
              <tr>
                <td valign="top" class="px10">
                    <p style="width: 500px;">description.</p>
                </td>
              </tr>
          </tbody></table></td>
        </tr>
    <tr>
        <td>
Crap
        </td>
    </tr>
    <tr>
        <td>
         Crap
        </td>
    </tr>
    </table>
    </div>

Je suis en train d'utiliser le code suivant pour obtenir tous les tr balises et d'analyser si il y est de la merde ou de l'information à l'intérieur d'eux:

$dom = new DOMDocument();
@$dom->loadHTML($html);

$xpath = new DOMXPath($dom);


$tags = $xpath->query('.//div[@id="showContent"]');
foreach ($tags as $tag) {
    $string="";
    $string=trim($tag->nodeValue);
    if(strlen($string)>3) {
        echo $string;
        echo '<br>';
    }
}

Cependant, je suis seulement dépouillé de chaîne sans les balises, par exemple:

Crap

Crap
Title
Description

Mais je voudrais obtenir:

<tr>
   <td>Crap</td>
</tr>
<tr>
   <a href="link">title</a>
</tr>

Comment garder html nœuds (tags)?

  • Voir innerHTML en PHP DOMDocument.
  • Votre recherche XPath de la div. Pour obtenir le code HTML que vous montrez, vous auriez à utiliser différents Requête XPath/Requêtes, puis de transmettre les résultats à echo $dom->save($node). Veuillez préciser ce que vous essayez d'obtenir.
  • innerHTML n'est pas nécessaire ici.
  • merci, pour le lien
  • Je suis en train d'essayer d'obtenir de l'information d'une page et l'afficher dans un autre, mais la page est la liste de plusieurs informations à l'intérieur d'un tableau, certaines sont pertinentes, d'autres ne le sont pas, j'ai des images, des titres et des descriptions qui je veux, et puis des styles, des chiffres que je n'aime pas, mais je veux obtenir le code html à l'intérieur de la div à l'analyse de la pertinence des données, avec mon code je reçois toutes les chaînes et je ne sais pas si c'était une div à l'intérieur d'un td, raw td ou quelque chose d'autre (toutes les infos sont à l'intérieur de cette grosse div)
InformationsquelleAutor Saikios | 2011-02-12