【问题标题】:Add new node to local XML file with JS or jQuery使用 JS 或 jQuery 将新节点添加到本地 XML 文件
【发布时间】:2015-06-02 14:46:02
【问题描述】:

我想从用户输入向 XML 文件添加新元素。 我尝试了很多可能的方法,但没有一个对我有用:(

如何使用 JavaScript 或 jQuery 将新节点/元素/项目添加到现有的本地 XML 文件?

这是我目前的状态:

function addElement() {
    var xml;
    if (window.activexobject) {
        xml = new activexobject("microsoft.xmlhttp");
    } else {
        xml = new xmlhttprequest();
    }
    xml.onreadystatechange = function () {
        if (xml.readystate == 4 && xml.status == 200) {
            var resp = xml.responsexml;
            var user = xml.responsexml.createelement("User");

            var name = xml.responsexml.createelement("name");
            name.appendchild(xml.responsexml.createtextnode("sof_user"));

            var admin = xml.responsexml.createelement("admin");
            admin.appendchild(xml.responsexml.createtextnode("false"));

            user.appendchild(name);
            user.appendchild(admin);
            xml.responsexml.documentelement.appendchild(user);
        }
    }
xml.open("get", "users.xml", true);
xml.send(null);
}

XML 应该如下所示:

<Users>
    <User>
        <name>testuser</name>
        <admin>true</admin>
    </User>
    <User>
        <name>sof_user</name>
        <admin>false</admin>
    </User>
    ....
</Users>

【问题讨论】:

  • 您是在问如何将文件从浏览器保存到本地硬盘吗?
  • @DanField 是的。以及如何添加新令牌

标签: javascript jquery xml


【解决方案1】:

您应该能够像这样构建您的 XML:

usersNode = document.createElement("Users");

userNode = document.createElement("User");
nameNode = document.createElement("name");
nameNode.innerText = "testuser";
adminNode = document.createElement("admin");
adminNode.innerText = "true";
userNode.appendChild(nameNode);
userNode.appendChild(adminNode);
usersNode.appendChild(userNode);

userNode = document.createElement("User");
nameNode = document.createElement("name");
nameNode.innerText = "sof_user";
adminNode = document.createElement("admin");
adminNode.innerText = "false";
userNode.appendChild(nameNode);
userNode.appendChild(adminNode);
usersNode.appendChild(userNode);

console.log(usersNode.innerHTML);

我认为这应该给你你想要的。

【讨论】:

  • 如何将这些节点添加到现有的 XML 文件 (users.xml)?
  • 用你的根节点替换usersNode = document.createElement("Users");
  • 你能把 JS fiddle 或类似的东西放在一起来证明你遇到的问题吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多