gpt4 book ai didi

javascript - 根据项目标签删除 xml 中的行

转载 作者:行者123 更新时间:2023-12-03 07:32:16 25 4
gpt4 key购买 nike

对 javascript 和 xml 完全陌生,我想从以下 xml 文档的项目中删除一行:

<TEXTS>
<Text Name="NewProject">NEW PROJECT</Text>
<Text Name="Continue">CONTINUE</Text>
<Text Name="RecentProjects">Recently used Projects:</Text>
</TEXTS>
<LIST>
<Project ID="Visible" Name="Example1" />
<Project ID="Visible" Name="adgjhh" />
<Project ID="Visible" Name="dthdth" />
<Project ID="Visible" Name="rssrhsrh" />
<Project ID="Visible" Name="aaaef" />
<Project ID="Visible" Name="aeeaaet" />
<Project ID="Visible" Name="aeteta" />
<Project ID="Visible" Name="aetetaetaetaetaeta" />
<Project ID="Visible" Name="agdadg" />
<Project ID="Visible" Name="dga" />
<Project ID="Visible" Name="ghfj" />
<Project ID="Visible" Name="hsrh" />
<Project ID="Visible" Name="hteah" />
<Project ID="Visible" Name="jrrjyrjy" />
<Project ID="Visible" Name="jyrryjry" />
<Project ID="Visible" Name="wtwet" />
<Project ID="Visible" Name="yrryry" />
<Project ID="Visible" Name="yrtry" />
</LIST>

这是我在 JS 中的尝试:

 var fname="listOfProjects.xml";
var xmldoc;

var activeProjects;
var inactiveProjects;

var clickable;
var greyed;

var nodes;

xmldoc= new ActiveXObject("Msxml2.DOMDocument");
xmldoc.load(fname);
activeProjects = xmldoc.selectNodes("/STARTPAGE/LIST/Project[@ID='Visible']");
clickable = "<LIST>";

// Try and delete a random project for now
var y = xmldoc.getElementsByTagName("Project")[5];
y.parentNode.removeChild(y);
//xmldoc.documentElement.removeChild(y);

假设我要删除项目“Example1”。第一步是能够根据索引删除它。我的第二个目标是能够根据文本删除它,这意味着我想搜索所有项目,并从所有项目中删除“Example1”。

最佳答案

要选择节点,您可以使用 XPath,例如

xmldoc.setProperty('SelectionLanguage', 'XPath');
var el = xmldoc.selectSingleNode('//Project[@name = "Example1"]');

从 DOM 中删除选定的节点

if (el != null) {
el.parentNode.removeChild(el);
}

要将 DOM 中所做的更改保存到文件中,请使用 save 方法,即

xmldoc.save("result.xml");

关于javascript - 根据项目标签删除 xml 中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35769552/

25 4 0