我有以下xml结构:
<?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>
......等等。
我想删除第n个元素。而已。我见过的所有例子都涉及使用xmatch搜索节点内容而我无法搜索它,因为1 - 它是一个复杂的字符串而且我真的不知道要删除的字符串,但我知道索引。
我可以像这样读取所有url节点:
$.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 />");
});
但我似乎无法说“仅输出第二个”,更不用说删除它了。
还有一件事。我理解,一旦我操作XML DOM,我必须使用
将其写回文件echo $urlFile->asXML('myfile.xml');
但是这个过程在某种程度上是模糊的(这个“asXML”方法属于什么类?它在这个上下文中是否可用?我是否必须加载另一个库而不仅仅是jquery.js?) 我在这个过程中迷失了方向;有人可以发布整个过程的概要吗?即
(理想情况下,我希望能够在写回文件之前做一些检查,比如空行等)
即使示例不起作用,我也只想围绕这个概念。
答案 0 :(得分:0)
好的,我解决了pb的一半:我现在可以使用它的索引删除第n个节点,如下所示:
$(document).ready(function() {
$.ajax({
type: 'GET',
url: 'conf.xml',
dataType: 'xml',
success: parseXml
});
function parseXml(xml) {
$(xml).find("url").eq(3).remove(); // <= The answer I was looking for
$(xml).find("url").each(function(index) {
$("#output").append($(this).text());
});
}
});
这将输出我没有第3个元素的列表。 (但不是作为DOM对象)。不过,Wohoo!
现在我怎样才能在php var中将它(作为DOM对象)取回来将其写回文件?或者使用ajax?我可以从ajax中读取一个文件,但是不能写入它,我不知道该怎么做,有人做过这个可以指向正确方向的人吗? (将JS处理的XML保存为实际文件?)
问候,-ph