Получить атрибуты и значения с помощью SimpleXML
Я действительно не понимаю, как использовать SimpleXML в PHP.
вот пример моего XML-файла:
<?xml version="1.0" encoding="UTF-8" ?>
<eventlog version="1.1">
<event source="Firewall" timeStamp="1308433939" type="0" deleted="0" bodyLength="218">
<subject>Network access detected</subject>
<action>Allowed</action>
<message>The program c:xamppapachebinhttpd.exe attempted to connect to the Internet. The program used the protocol TCP on port 80.</message>
</event>
</eventlog>
Мне нужно получить это: Источник, Отметка Времени, Тема, Действие, Сообщение
Я просто не понимаю. Кто-нибудь может мне помочь?
3 ответов
этот код должен работать:
$xml = new SimpleXMLElement($xmlString);
$source = $xml->event->attributes()->source;
$timestamp = $xml->event->attributes()->timestamp;
$subject = $xml->event->subject;
$action = $xml->event->action;
$message = $xml->event->message;
... где $xmlString-строка xml-файла.
читайте о том, как использовать simpleXML здесь.
надеюсь, это помогло и удачи!
в интересах учу тебя рыба, Я бы посоветовал вам проверить PHP документы на SimpleXML.
чтобы помочь вам начать работу.
- использовать
simplexml_load_file()
илиsimplexml_load_string()
для анализа XML - это вернет объект-use
var_dump()
илиprint_r()
чтобы увидеть, как он выглядит. - пройдите этот объект, чтобы получить нужные атрибуты.
попробуйте следующее:
function time2DatetimeUS($timestamp)
{
$datetime = date('Y-m-d H:i:s', $timestamp);
return $datetime;
}
$db = new SQLiteDatabase("AutoAnalysis.sqlite", 0666, $err);
$xml = new SimpleXMLElement($logs_antivirus_local, NULL, TRUE);
foreach ($xml->event as $a) {
$source = $a->attributes()->source;
$timestamp = $a->attributes()->timeStamp;
$datetime = time2DatetimeUS("$timestamp");
$subject = $a->subject;
$action = $a->action;
$message = $a->message;
}
$query = "INSERT INTO BitDefender(id, datetime, module, sujet, action, message)
VALUES ('', '$datetime', '$source', '$subject', '$action', '$message')";
$results = $db->queryexec($query);
echo " $datetime $source $subject";