Ответ
В PHP я работал с XML для парсинга конфигураций, обработки данных из внешних API и генерации отчетов. Основные использованные инструменты:
- SimpleXML — для быстрого чтения и простой навигации по XML-структурам.
- DOMDocument — когда требовалось создавать сложные документы, модифицировать узлы или валидировать структуру.
- XPath — для выполнения сложных запросов к XML-документам.
Пример парсинга RSS-ленты с SimpleXML и XPath:
$rss = simplexml_load_file('https://example.com/feed.rss');
// Регистрируем пространство имен, если оно есть
$rss->registerXPathNamespace('dc', 'http://purl.org/dc/elements/1.1/');
// Ищем все заголовки статей, опубликованные за последнюю неделю
$items = $rss->xpath('//item[dc:date > "' . date('c', strtotime('-1 week')) . '"]/title');
foreach ($items as $title) {
echo (string) $title . "n";
}
Пример создания XML-документа с DOMDocument для экспорта данных:
$dom = new DOMDocument('1.0', 'UTF-8');
$dom->formatOutput = true;
$root = $dom->createElement('users');
$dom->appendChild($root);
$users = [['id' => 1, 'name' => 'Alice'], ['id' => 2, 'name' => 'Bob']];
foreach ($users as $userData) {
$userElement = $dom->createElement('user');
$userElement->setAttribute('id', $userData['id']);
$nameElement = $dom->createElement('name', $userData['name']);
$userElement->appendChild($nameElement);
$root->appendChild($userElement);
}
// Валидация по XSD схеме (если она есть)
if ($dom->schemaValidate('schema/users.xsd')) {
echo $dom->saveXML();
// или $dom->save('export.xml');
}
Также имел дело с валидацией XML через XSD-схемы и преобразованием XML в другие форматы с помощью XSLT.