Добавить новый элемент в существующий локальный XML, используя JavaScript - PullRequest
0 голосов
/ 16 октября 2019

У меня есть существующий файл XML, содержащий данные, подобные следующим. Я хочу добавить новую книгу с названием, автором, годом и ценой.

<?xml version="1.0" encoding="utf-8"?>
<bookstore>
    <book category="children">
        <title lang="en">Harry Potter</title>
        <author>J K. Rowling</author>
        <year>2005</year>
        <price>29.99</price>
    </book>
    <book category="web" cover="paperback">
        <title lang="en">Learning XML</title>
        <author>Erik T. Ray</author>
        <year>2003</year>
        <price>39.95</price>
    </book>
</bookstore>

Ответы [ 2 ]

0 голосов
/ 20 октября 2019

См. Ниже (добавление книги и заголовка). Нажмите кнопку «Демо»

<!DOCTYPE html>
<html>
<head>
<script>
function demo() {
var parser, doc;
var text = `<?xml version="1.0" encoding="utf-8"?>
<bookstore>
    <book category="children">
        <title lang="en">Harry Potter</title>
        <author>J K. Rowling</author>
        <year>2005</year>
        <price>29.99</price>
    </book>
    <book category="web" cover="paperback">
        <title lang="en">Learning XML</title>
        <author>Erik T. Ray</author>
        <year>2003</year>
        <price>39.95</price>
    </book>
</bookstore>`;

parser = new DOMParser();
doc = parser.parseFromString(text,"text/xml");

var book = doc.createElement("book");
book.setAttribute("category", "other");
book.setAttribute("cover", "nice");
let title = doc.createElement("title");
let title_txt = doc.createTextNode("the new title");
title.appendChild(title_txt);
book.appendChild(title)
doc.getElementsByTagName("book")[0].appendChild(book);

alert(new XMLSerializer().serializeToString(doc.documentElement))
}


</script>

</head>
<body>

<input type="button" onclick="demo()" value="Demo">


</body>
</html>
0 голосов
/ 17 октября 2019

здесь, пример рабочего кода

 function XMUpdate() {
    try {
    xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    }
    catch (e) {  try { xmlDoc = document.implementation.createDocument("", "", null);  }
    catch (e) { }
    }
    try {
        xmlDoc.async = false;
        xmlDoc.load("C:/test.XML");
        newEle = xmlDoc.createElement("book");

        newEle1 = xmlDoc.createElement("Title");
        newText1 = xmlDoc.createTextNode("aaaa");
        newEle1.appendChild(newText1);
        newEle.appendChild(newEle1);

         newEle2 = xmlDoc.createElement("author");
        newText2 = xmlDoc.createTextNode("SSSSSS");
        newEle2.appendChild(newText2);
        newEle.appendChild(newEle2);

        newEle3 = xmlDoc.createElement("year");
        newText3 = xmlDoc.createTextNode("2019");
        newEle3.appendChild(newText3);
        newEle.appendChild(newEle3);

        newEle4 = xmlDoc.createElement("price");
        newText4 = xmlDoc.createTextNode("39.95");
        newEle4.appendChild(newText4);
        newEle.appendChild(newEle4);

        xmlDoc.getElementsByTagName("bookstore")[0].appendChild(newEle);
        xmlDoc.save("C:/test.XML");
    }
    catch (e) { alert(e.message) }
    return (null);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...