如何使用 Javascript 编辑 XML 节点的数据

How Edit data of an XML node with Javascript

本文关键字:节点 数据 XML 编辑 何使用 Javascript      更新时间:2023-09-26

我想用Javascript在现有的本地XML文件中写入一些数据,其中包含一些来自Html页面的文本。是否可以更改节点的内容?下面是 XML 示例:

<Notepad>
    <Name>Player1</Name>
    <Notes>text1</Notes>
</Notepad>

我会从输入中获得更多文本,并希望将其添加到"text1"之后,但找不到解决方案。

function SaveNotes(content,player)
		 {
			var xml = "serialize.xml";
			var xmlTree =  parseXml("<Notepad></Notepad>");
			var str = xmlTree.createElement("Notes");
		
           
			$(xmlTree).find("Notepad").find(player).append(str);
			$(xmlTree).find("Notes").find(player).append(content);
			var xmlString = (new XMLSerializer()).serializeToString(xmlTree);
			
					
			}
			

以下是操作 xml 内容或 xml 文件的代码:[更新]请检查此小提琴

    var parseXml;
    parseXml = function(xmlStr) {
        return (new window.DOMParser()).parseFromString(xmlStr, "text/xml");
    };
var xmlTree = parseXml("<root></root>");
function add_children(child_name, parent_name) {
    str = xmlTree.createElement(child_name);
    //strXML = parseXml(str);
    $(xmlTree).find(parent_name).append(str);
    $(xmlTree).find(child_name).append("hello");
    var xmlString = (new XMLSerializer()).serializeToString(xmlTree);
    alert(xmlString);
}
add_children("apple", "root");
add_children("orange", "root");
add_children("lychee", "root");

您可以使用它来搜索 XML 以及添加包含内容的新节点。(抱歉,我不知道如何从客户端加载xml并显示它。但是这个小提琴演示将有助于在XML中添加内容并在其中进行搜索。希望对:)有所帮助

如果你想在客户端实现这一点,你可以将你的xml解析为一个文档对象:

看https://developer.mozilla.org/en-US/docs/Web/Guide/Parsing_and_serializing_XML和http://www.w3schools.com/xml/tryit.asp?filename=tryxml_parsertest2

然后像处理任何html文档的DOM一样操作它,例如createElement,appendChild等。

请参阅 https://developer.mozilla.org/en-US/docs/Web/API/Document/createElement

然后,要再次将其序列化为字符串,您可以使用 https://developer.mozilla.org/en-US/docs/Web/API/Element/outerHTML

持久保存数据

无法以跨浏览器方式写入本地文件。在IE中,您可以使用ActiveX来读/写文件。

如果您的数据足够小,您可以使用 Cookie 在客户端存储数据。

在HTML5中,您可以使用本地存储,请参阅 http://www.w3schools.com/html/html5_webstorage.asp

尝试使用这两个包一个转换为 json,什么时候完成另一个回来

https://www.npmjs.com/package/xml2json

https://www.npmjs.com/package/js2xmlparser