Xsl dönüşüm parametre olarak / dönüştürmek xml dizesi nasıl kullanılır

0 Cevap php

Benim kod mysql kümesi bir xml çıktı oluşturur. Sonra HTML dönüştürmek gerekir. Ben bir php değişkene kaydedilir ve parametre olarak transformToXML( $XML ) bunu kullanmaya çalıştı ama o burada bir nesneyi bekliyor yükseltir. Nasıl bu xml çıktı burada bir parametre olarak kullanılmak üzere bir nesneye dönüştürebilirsiniz yok. İşte benim kod:

<?php

// i am using the resultset to build an XML DOM but you can do whatever you like with it !

   header("Content-type: text/xml");
   $conn = new mysqli("localhost", "babar", "k4541616", "spec", 3306);
   // one non-recursive db call to get the message tree !
   $result = $conn->query("call message_hier(1)");
   //--$result = $conn->query("call message_hier_all()");
   $xml = new DomDocument;
   $xpath = new DOMXpath($xml);
   $msgs = $xml->createElement("messages");
   $xml->appendChild($msgs);
   // loop and build the DOM
   while($row = $result->fetch_assoc()){
     $msg = $xml->createElement("message");
     foreach($row as $col => $val) $msg->setAttribute($col, $val); 

   if(is_null($row["parent_msg_id"])){
     $msgs->appendChild($msg);
   }
   else{
     $qry = sprintf("//*[@msg_id = '%d']", $row["parent_msg_id"]);
     $parent = $xpath->query($qry)->item(0);
     if(!is_null($parent)) $parent->appendChild($msg);
    } 
   }
   $result->close();
   $conn->close();
   $save = $xml->saveXML();//-> Here i save mxl in php var
   //echo $save;

   $xslt = new XSLTProcessor();
   $XSL = new DOMDocument();
   $XSL->load( 'msg.xsl');
   $xslt->importStylesheet( $XSL );
   header('Content-Type: application/xml');
   print $xslt->transformToXML($save); //->error: expects an object here, string given.

  ?>

0 Cevap