Ich habe die folgende Xml-Struktur:
<?xml version="1.0" encoding="utf-8" ?>
<nws>
<url>http://cpa.hypotheses.org/feed</url>
<url>http://news.ycombinator.com/rss</url>
<url>http://rss.slashdot.org/Slashdot/slashdot</url>
<url>http://feeds.feedburner.com/hackaday/LgoM</url>
</nws>
...und so weiter.
Ich würde gerne das n-te Element entfernen. Das war's. Alle Beispiele, die ich gesehen habe, beinhalten die Suche nach dem Inhalt des Knotens mit xmatch, und ich kann ihn nicht durchsuchen, weil 1. es eine komplizierte Zeichenfolge ist und 2. ich die Zeichenfolge, die ich löschen möchte, wirklich nicht kenne, aber ich kenne den Index.
Ich kann alle Url-Knoten wie folgt lesen:
$.ajax({
type: 'GET',
url: 'conf.xml',
dataType: 'xml',
success: parseXml
});
$(xml).find("url").each(function() {
$("#output").append($(this).text());
// $("#output").append(": " + $(this).find("Title").text() + "<br />");
});
Aber ich kann anscheinend nicht sagen: "Nur die zweite ausgeben", geschweige denn sie entfernen.
Noch eine Sache. Ich verstehe, dass ich das XML-DOM nach der Manipulation wieder in die Datei zurückschreiben muss, indem ich
echo $urlFile->asXML('myfile.xml');
Aber der Prozess ist irgendwie unscharf (zu welcher Klasse gehört diese "asXML"-Methode? Ist sie überhaupt in diesem Kontext verfügbar? Muss ich eine andere Bibliothek als nur jquery.js laden ?) Ich bin irgendwo in dem Prozess verloren ; Kann jemand bitte einen Überblick über den gesamten Prozess posten ? dh
- die Datei lesen
- finden, sagen wir den zweiten Knoten durch den Namen des Knotens ( no seinen Inhalt oder sein Attribut)
- löschen
- die geänderte Darstellung des DOM in die Datei zurückschreiben
(idealerweise möchte ich vor dem Zurückschreiben in die Datei einige Prüfungen durchführen können, wie z. B. leere Zeilen usw.)
Auch wenn das Beispiel nicht funktional ist, möchte ich das Konzept einfach verstehen.