JavaScript. Введение в XML
На прошлом уроке мы рассмотрел формат обмена данными JSON. В этому уроке мы рассмотрим еще один формат данных — XML (Extended Markup Language).
Язык XML имеет некоторые сходства с языком HTML. Оба этих языка — это языки разметки. Только HTML размечает структуру страницы, а XML размечает данные. XML, как и HTML также можно сделать привлекательным для отображения (при помощи XSLT).
XML также состоит из тегов, но в отличии от HTML в XML документе теги придумывает сам автор. В примере ниже описываем книги, каждую по отдельности. Соответственно, в документе есть тег books (ведь мы описываем коллекцию книг), а для описания каждой книги логично создать тег book.
XML также состоит из тегов, но в отличии от HTML в XML документе теги придумывает сам автор. В примере ниже описываем книги, каждую по отдельности. Соответственно, в документе есть тег books (ведь мы описываем коллекцию книг), а для описания каждой книги логично создать тег book.
В xml также можно добавлять атрибуты к тегам. В примере ниже это атрибут birthday.
Парсить xml строки можно при помощи встроенного в javascript объекта DOMParser. У этого объекта есть метод parseFromString.
Метод возвращет DOM объект. Брать данные из DOM объекта можно также как и в случае с HTML. В xml нет классов и id, поэтому имеет смысл использовать метод getElementByTagName
Пример XML файла
<?xml version="1.0" encoding="UTF-8"?>
<books>
<book>
<name>Евгений Онегин</name>
<type>роман</type>
<author birthday="06.06.1799">А.С.Пушкин</author>
</book>
<book>
<name>Война и мир</name>
<type>роман</type>
<author birthday="06.06.1799">Л.Н.Толстой</author>
</book>
<book>
<name>Я помню чудное мгновенье</name>
<type>стихи</type>
<author birthday="06.06.1799">А.С.Пушкин</author>
</book>
</books>
Код урока
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
var xmlStr = '<?xml version="1.0" encoding="UTF-8"?><books><book><name>Евгений Онегин</name><type>роман</type><author birthday="06.06.1799">А.С.Пушкин</author></book></books>';
var parser = new DOMParser();
xmlDoc = parser.parseFromString(xmlStr, "text/xml");
console.log(xmlDoc.getElementsByTagName("name"));
</script>
</body>
</html>
0 Комментариев