Ottenere un bambino specifico tag da un DOMElement in PHP

Sto camminando attraverso un file di definizione xml e ho un DOMNodeList che io sono a piedi attraverso.
Ho bisogno di estrarre il contenuto di un bambino di tag che possono o non possono essere al corrente di entità

<input id="name">
  <label>Full Name:</label>
  <required />
</input>
<input id="phone">
  <required />
</input>
<input id="email" />

Ho bisogno di sostituire ????????????? con qualcosa che mi mette il contenuto del tag label se
esiste.

Codice:

foreach($dom->getElementsByTagName('required') as $required){
  $curr = $required->parentNode;

  $label[$curr->getAttribute('id')] = ?????????????
}

Risultato Atteso:

Array(
  ['name'] => "Full Name:"
  ['phone'] => 
)

OriginaleL’autore Tyson of the Northwest | 2010-09-28

1 risposta

  1. 8

    Cosa strana è: si sa già la risposta visto che hai usato nello script, getElementsByTagName().

    Ma questa volta non con il DOMDocument come contesto di “nodo”, ma con il input DOMElement:

    <?php
    $doc = getDoc();
    foreach( $doc->getElementsByTagName('required') as $e ) {
      $e = $e->parentNode; //this should be the <input> element
      //all <label> elements that are direct children of this <input> element
      foreach( $e->getElementsByTagName('label') as $l ) {
        echo 'label="', $l->nodeValue, "\"\n";
      }
    }
    
    function getDoc() {
      $doc = new DOMDocument;
      $doc->loadxml('<foo>
        <input id="name">
          <label>Full Name:</label>
          <required />
        </input>
        <input id="phone">
          <required />
        </input>
        <input id="email" />
      </foo>');
      return $doc;
    }

    stampe label="Full Name:"

    Rock, che farò, Grazie!

    OriginaleL’autore VolkerK

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *