【发布时间】:2012-01-22 14:16:01
【问题描述】:
我有以下 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-它是一个复杂的字符串,并且 2-我真的不知道要删除的字符串,但我知道索引。
我可以像这样读取所有 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 ?) 我在这个过程中迷失了方向;有人可以发布整个过程的概要吗?即
- 读取文件
- 找到,说第二个节点通过节点的名称(不是它的内容或属性)
- 删除它
- 将修改后的 DOM 表示写回文件
(理想情况下,我希望能够在写回文件之前进行一些检查,例如空行等)
即使示例不起作用,我也只是想围绕这个概念展开思考。
【问题讨论】: