Nasıl kök daha derin PHP DOM kullanarak XML yeni unsurlar eklerim?

1 Cevap php

Ben bu konuda online bulabilirsiniz örnekler tüm belge kökünde bir XML dosyasına sadece ekleyerek içeriği kapsar, ama gerçekten bunu bu daha derin yapmak gerekir.

Benim XML dosyası basit, ben var:

<?xml v1 etc>
<channel>
<screenshots>
<item>
  <title>Image Title</title>
  <link>www.link.com/image.jpg</link>
</item>
</screenshots>
</channel>

Ben yapmak mümkün olmak istiyorum Tüm yeni "kalemi" unsurları, bir başlık ve bağlantı ile her ekleyin. Ben PHP DOM kullanarak gereken biliyorum, ama bütün belge üzerine yazmak yerine "ekran" kapsamında ziyade veri ekler, böylece bunu kod olarak nasıl stumped. Ben de XPath kullanmanız gerekebilir bir şüphe var, ama ben nasıl hiçbir fikrim yok!

Ben online örnekler biraradaydı var kod bu gibi görünüyor (ama ben yanlış olduğuna eminim)

$newshottitle = "My new screenshot";
$newshotlink = "http://www.image.com/image.jpg";

$dom = newDomDocument;
$dom->formatOutput = true;
$dom->load("../xml/screenshots.xml");

$dom->getElementsByTagName("screenshots");
$t = $dom->createElement("item");
$t = $dom->createElement("title");
$t->appendChild($dom->createTextNode("$newshottitle"));

$l = $dom->createElement("link");
$l->appendChild($dom->createTextNode("$newshotlink"));

$dom->save("../xml/screenshots.xml");

1 Cevap

Belge kökünde bir XML dosyasına içerik ekleyerek, ama gerçekten daha derin daha bunu yapmak gerekir.

Sen şu anda her yerde içerik ekleyerek değil! Sen metin ile ve <link> eleman düğümleri oluşturmak, daha sonra onlarla hiçbir şey. Sen (Ayrıca şu anda yaratıyor ve hemen bir değişkene atayarak değil tarafından atmadan olan) <item> eleman düğümünde 'Appendchild' içine geçen.</p> <p>İşte başlangıç ​​noktası bulunuyor:</p> <pre><code>$screenshots= $dom->getElementsByTagName("screenshots")[0]; $title= $dom->createElement("title"); $title->appendChild($dom->createTextNode($newshottitle)); $item= $dom->createElement("item"); $item->appendChild($title); $screenshots->appendChild($item); </code></pre></div> </div> <div class="post-button clearfix"> <button name="a21540_doflag" class="btn icon-flag" title="Bu cevapta sorun bildir.">sorun bildir</button> </div> </div> <div class="qa-a-item-c-list" style="display:none;" id="c99_list"> <div class="comment-count icon-comments">0</div> <div class="comment-items"> </div> </div> <!-- END qa-c-list --> <input type="hidden" name="code" value="0-1398277270-d224c57487fbee7a0814573df17169e8520938d4"> <input type="hidden" name="qa_click" value=""> </div> </div> </div> <!-- END qa-a-item-main --> </div> <!-- END qa-a-list-item --> </div> <!-- END qa-a-list --> </div> </div> <div class="col-md-4 question-sidebar"> <div class="qa-post-meta"> <div class="question-tags"> <h3 class="tags-label">etiketler</h3> <ul class="tags-tag-list"> <li class="tags-tag-item"><a href="https://www.takildimkaldim.com/etiket/php" class="qa-tag-link">php</a></li> <li class="tags-tag-item"><a href="https://www.takildimkaldim.com/etiket/xml" class="qa-tag-link">xml</a></li> <li class="tags-tag-item"><a href="https://www.takildimkaldim.com/etiket/dom" class="qa-tag-link">dom</a></li> </ul> </div> </div> </div> </div> </div> </div> <footer id="site-footer" class="clearfix"> <div class="qa-nav-main"> <ul class="qa-nav-main-list"> <li class="qa-nav-main-item qa-nav-main-questions"> <a href="https://www.takildimkaldim.com/sorular/" class="icon-question-sign qa-nav-main-link">Sorular</a> </li> <li class="qa-nav-main-item qa-nav-main-tag"> <a href="https://www.takildimkaldim.com/etiket/" class="icon-tags2 qa-nav-main-link">Etiketler</a> </li> </ul> <div class="qa-nav-main-clear"> </div> </div> <ul class="ra-social-links"> <li><a class="t-bg-4 icon-facebook" href="#" title="Link to Facebook"></a></li> <li><a class="t-bg-4 icon-twitter" href="#" title="Link to Twitter"></a></li> </ul> <div class="qa-attribution-right"> Copyright © 2014 <p class="developer">Powered by <a href="http://evrenweb.net/">EvrenWeb</a> Int. Media.</p> </div> </footer> </div> </body> </html> <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --> <!--[if lte IE 9]> <link rel="stylesheet" type="text/css" href="https://www.takildimkaldim.com/css/ie.css"> <script src="https://www.takildimkaldim.com/js/html5shiv.js"></script> <script src="https://www.takildimkaldim.com/js/respond.min.js"></script> <![endif]--> <link rel="stylesheet" type="text/css" href="https://www.takildimkaldim.com/css/tk.min.css"> <script src="https://www.takildimkaldim.com/js/jquery-1.7.2.min.js" type="text/javascript"></script> <script src="https://www.takildimkaldim.com/js/qa-page.js" type="text/javascript"></script> <script type="text/javascript" src="https://www.takildimkaldim.com/js/bootstrap.js"></script> <script type="text/javascript" src="https://www.takildimkaldim.com/js/jquery.sparkline.min.js"></script> <script type="text/javascript" src="https://www.takildimkaldim.com/js/jquery-ui.min.js"></script> <script type="text/javascript" src="https://www.takildimkaldim.com/js/theme.js"></script> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-50641020-1', 'takildimkaldim.com'); ga('send', 'pageview'); </script>