Как изменить XML-файл с помощью PHP

Идеальная реализация JVM никогда не будет отказывать.

Для катастрофического отказа JVM, кроме JNI, необходимо найти ошибку в самом VM. Бесконечный цикл просто использует ЦП. Бесконечно выделение памяти должно правое дело OutOfMemoryError в хорошо созданной JVM. Это, вероятно, вызвало бы проблемы для других потоков, но хорошая JVM все еще не должна отказывать.

, Если можно найти ошибку в исходном коде VM, и например вызвать отказ сегментации в использовании памяти реализации VM, тогда можно на самом деле разрушить его.

14
задан Avinash 28 July 2009 в 11:35
поделиться

2 ответа

Вы можете использовать DOMDocument из PHP .

Вы загружаете свой файл, а затем выполняете цикл через дочерние узлы из документ.

<?php
$dom=new DOMDocument();
$dom->load("file.xml");

$root=$dom->documentElement; // This can differ (I am not sure, it can be only documentElement or documentElement->firstChild or only firstChild)

$nodesToDelete=array();

$markers=$root->getElementsByTagName('marker');

// Loop trough childNodes
foreach ($markers as $marker) {
    $type=$marker->getElementsByTagName('type')->item(0)->textContent;
    $title=$marker->getElementsByTagName('title')->item(0)->textContent;
    $address=$marker->getElementsByTagName('address')->item(0)->textContent;
    $latitude=$marker->getElementsByTagName('latitude')->item(0)->textContent;
    $longitude=$marker->getElementsByTagName('longitude')->item(0)->textContent;

    // Your filters here

    // To remove the marker you just add it to a list of nodes to delete
    $nodesToDelete[]=$marker;
}

// You delete the nodes
foreach ($nodesToDelete as $node) $node->parentNode->removeChild($node);

echo $dom->saveXML();
?>

Вы можете сохранить выходной XML следующим образом

$dom->saveXML(); // This will return the XML as a string
$dom->save('file.xml'); // This saves the XML to a file

Чтобы выполнить этот синтаксический анализ в JavaScript , вы должны использовать jQuery (небольшая, но мощная библиотека).

Вы можете включить библиотеку прямо из Google Code Repository.

<script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script>

Библиотека кроссбраузерна и очень мала. Во многих случаях его следует кэшировать, потому что некоторые сайты используют его из Google Code

$(yourXMLStringOrDocument).find("marker").each(function () {
     var marker=$(this);

     var type=marker.find('type').text();
     var title=marker.find('title').text();
     var address=marker.find('address').text();
     var latitude=marker.find('latitude').text();
     var longitude=marker.find('longitude').text();
});
27
ответ дан 1 December 2019 в 08:17
поделиться

Объектная модель документа (DOM) - это ответ.

<?
 $dom=new DomDocument();
 $dom->Load("file.xml");
 $root=$dom->documentElement;
 ...
 $dom->Save("file.xml");
?>
6
ответ дан 1 December 2019 в 08:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: