Autor Zpráva
Michal Benda
Profil
Zdravím,

napsal jsem si funkci v PHP, která převádí xml dokument (reprezentovaný pomocí DOMDocument) s tím, že tato funkce zajišťuje odsazení jednotlivých elementů. To mi funguje, ale když to převádím na string, tak potřebuji vědět zda právě zpracovávaný element je párový či nepárový.
<? function getStringOfXMLWithIndent($XMLNode, $indent){
    $String = "";
    $insertEndTag = true;
    
    $String = $indent."<".$XMLNode->nodeName;
    
    if($XMLNode->hasAttributes() == true){
      foreach($XMLNode->attributes as $attribute){
        $String .= " ".$attribute->name."=\"".$attribute->value."\"";
      }
    }
    
    $String .= ">";
    
    if($XMLNode->hasChildNodes() == true){
      foreach($XMLNode->childNodes as $child){
        if($child->nodeName != "#text"){
          $String .= "\n".getStringOfXMLWithIndent($child, $indent."\t");
        }
        else {
          $insertEndTag = false;
          $String .= $child->nodeValue."</".$XMLNode->nodeName.">";
        }
      }
    }
    
    if($insertEndTag == true){
      $String .= "\n".$indent."</".$XMLNode->nodeName.">";
    }
    
    return $String;
  }
  ?>

Existuje na to nějaká vlastnost nebo metoda?

Podotýkám, že funkce by měla být univerzální. To znamená, že se dopředu neví, co tam bude za xml dokument, jakého bude formátu, atd.
Díky
Joker
Profil
Michal Benda:
Pokud „nepárový element“ = bez koncové značky (obvyklý význam), XML nemůže obsahovat nepárové značky.
Všechny XML značky musejí být ukončené (i když prázdné značky mohou být ukončené i zkráceným zápisem: <tag />).
Michal Benda
Profil
Jo jasně... možná jsem to špatně pojmenoval... V tom případě potřebuji zjistit tu prázdnou značku... To znamená, že tedy stačí zkontrolovat, zda obsah značky je prázdný řetězec, ne?

EDIT:
Ano funguje, díky...

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: