Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

357
Views
PHP DOM: suelte la declaración XML y agregue doctype

Lo que quiero es eliminar la declaración XML y agregar <!DOCTYPE html> . Aquí hay un ejemplo de código:

 $html = new DOMDocument(); $html->formatOutput = true; $htmlNode = $html->createElement("html"); $html->appendChild($htmlNode); $htmlNode->appendChild($html->createElement("head")); $bodyNode = $html->createElement("body"); $bodyNode->setAttribute("data-spy", "scroll"); $bodyNode->setAttribute("data-target", "#myAffix"); $htmlNode->appendChild($bodyNode); $mainNode = $html->createElement("main"); $bodyNode->appendChild($mainNode); $gridcellNode = $html->createElement("div"); $gridcellNode->setAttribute("class", "grid-cell"); $mainNode->appendChild($gridcellNode); $containerFluid = $html->createElement("div"); $containerFluid->setAttribute("class","container-fluid"); $gridcellNode->appendChild($containerFluid); $html->saveHTMLFile("../article.html"); $html->saveHTML(); $html->save("../article2.html");

El primer artículo.html no contiene una declaración XML, pero tiene un formato deficiente (sin sangría). El segundo artículo2.html producido tiene sangría, pero también tiene <?xml version="1.0"?> . Salida en article.html:

 <html> <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head> <body data-spy="scroll" data-target="#myAffix"><main><div class="grid-cell"><div class="container-fluid"></div></div></main></body> </html>

salida en artículo2.html:

 <?xml version="1.0"?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> </head> <body data-spy="scroll" data-target="#myAffix"> <main> <div class="grid-cell"> <div class="container-fluid"/> </div> </main> </body> </html>
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Puede usar la opción LIBXML_NOXMLDECL para descartar la declaración XML, pero esto solo está disponible en Libxml >= 2.6.21 , es decir:

 $html->save("../article2.html", LIBXML_NOXMLDECL);

Si no tiene Libxml >= 2.6.21 , su única opción (afaik) es:

 $output = $html->saveHTML(); $the_file = "../article2.html"; $html->save($the_file); file_put_contents($the_file, preg_replace('/<\?xml[^>]+>\s+/', '', file_get_contents($the_file)));
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!