我想在现有的本地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);
}
答案 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_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
然后再次将其序列化为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,何时完成另一个回来