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

时间:2016-02-14 12:32:09

标签: javascript html xml

我想在现有的本地XML文件中使用Javascript和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);
			
					
			}
			

3 个答案:

答案 0 :(得分:1)

以下是操作xml内容或xml文件的代码: [更新] 请查看此Fiddle

    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中添加内容并在其中进行搜索。 希望它有所帮助:)

答案 1 :(得分:0)

如果要在客户端实现此目的,可以将xml解析为文档对象:

请参阅 https://developer.mozilla.org/en-US/docs/Web/Guide/Parsing_and_serializing_XMLhttp://www.w3schools.com/xml/tryit.asp?filename=tryxml_parsertest2

然后像操纵任何HTML文档的DOM一样操纵它,例如createElement,appendChild等。

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

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

保留数据

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

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

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

答案 2 :(得分:0)

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

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

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