Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
179
Добавлен:
17.04.2018
Размер:
254.46 Кб
Скачать
    1. Библиотеки обработки xml

      1. PHP

libxml - основная библиотека (включена по умолчанию)

simplexml - более простая и легкая библиотека

      1. JavaScript

XMLHttpRequest - объект браузера для работы с XML (включен)

JQuery - распространенная универсальная библиотека

      1. Java

javax.xml.parsers.* - создание (загрузка) и парсинг (разбор)

org.w3c.dom.* - перемещение по DOM документа

org.xml.sax.SAXException - генерация событий при чтении документа

    1. Разбор xml с помощьюPhp

Библиотека libxml содержит 19 классов для разбора XML документа, основными из которых являются:

  • DOMDocument – загрузка и валидация XML + некоторые преобразования (напр. в HTML)

  • DOMNode – обеспечивает перемещение по DOM XML документа или его части, полученной фильтром по некоторому условию, например по названию элемента (тега)

  • DOMElements — расширяет DOMNode. Обеспечивает все методы DOMNode, а также фильтрацию элементов и работу с атрибутами

Код 1. Валидация и получение значений атрибутов id и year из файла portfolio.xml

<?

$dom = new DOMDocument;

$dom->Load('portfolio.xml');

//Для XML-shema

if (!$dom->schemaValidate('portfolio.xsd')) {

echo '<b>DOMDocument::schemaValidate() Generated Errors!</b>';

}

$elems = $dom->getElementsByTagName('project'); //Получаем список элементов project

foreach ($elems as $temp) {

echo $temp->tagName." / ".$temp->getAttribute('id')." / ".$temp->getAttribute('year');

}

?>

Документацию по методам и свойствам классов libxml можно посмотреть по адресу http://fi2.php.net/manual/ru/refs.xml.php или воспользоваться локальной документацией в формате файла chm, загруженную в папку soft папки Интернет-программирование, содержащей лабораторные работы курса. При локальном использовании документации в формате chm возможны проблемы с отображением страниц с документацией. В этом случае следует открыть свойства файла и установить галочку в пункте «Разблокировать». См. Рис.1.

Рис.1. Разблокировка документации.

Документация по libxml находится в разделе «Справочник функций» см. рис. 2.

Рис. 2. Местоположение документации по обработке XML

    1. Разбор xml с помощьюJavaScript

В JavaScript для разбора XML документов используется объект XMLHttpRequest. Документация по свойствам и методам объекта XMLHttpRequest приведена в Приложении 1.

Код 2. Получение значений атрибутов id и year из файла portfolio.xml

<script>

var url = "http://bitrixtest.ru/sgml/portfolio.xml";

var parse_xml;

var xml=new window.XMLHttpRequest();

xml.open("GET", url, true);

xml.send(null);

xml.onreadystatechange = function() {

if (xml.readyState == 4) {

if(xml.status == 200) {

parse_xml = xml.responseXML;

var projects=parse_xml.getElementsByTagName("project");

if(projects) {

for(var i=0; i<projects.length; i++) {

project=projects[i];

console.log(

"project"

+ " | "+ project.getAttribute("id")

+ " | "+ project.getAttribute("year")

);

}

}

}

}

};

</script>

Соседние файлы в папке Интернет технологии