xml.php
2.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<?php
/**
* @copyright Copyright (c) 2009-2017 Ryan Demmer. All rights reserved
* @license GNU/GPL 2 or later - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* JCE is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses
*/
defined('_JEXEC') or die('RESTRICTED');
require_once WF_ADMINISTRATOR.'/classes/xml.php';
abstract class WFXMLHelper
{
public static function getElement($xml, $name, $default = '')
{
if ($xml instanceof JSimpleXML) {
//if (is_a($xml, 'JSimpleXML')) {
$element = $xml->document->getElementByPath($name);
return $element ? $element->data() : $default;
} else {
return (string) $xml->$name;
}
}
public static function getElements($xml, $name)
{
if ($xml instanceof JSimpleXML) {
//if (is_a($xml, 'JSimpleXML')) {
$element = $xml->document->getElementByPath($name);
if (is_a($element, 'JSimpleXMLElement') && count($element->children())) {
return $element;
}
} else {
return $xml->$name;
}
return array();
}
public static function getAttribute($xml, $name, $default = '')
{
//if (is_a($xml, 'JSimpleXML')) {
if ($xml instanceof JSimpleXML) {
$value = (string) $xml->document->attributes($name);
} else {
$value = (string) $xml->attributes()->$name;
}
return $value ? $value : $default;
}
public static function getXML($file)
{
return WFXMLElement::load($file);
}
public static function parseInstallManifest($file)
{
$xml = WFXMLElement::load($file);
if (!$xml) {
return false;
}
if ($xml->getName() != 'install' && $xml->getName() != 'extension') {
return false;
}
$data = array(
'version' => (string) $xml->version,
'name' => (string) $xml->name,
'copyright' => (string) $xml->copyright,
'authorEmail' => (string) $xml->authorEmail,
'authorUrl' => (string) $xml->authorUrl,
'description' => (string) $xml->description,
'author' => (string) $xml->author,
);
return $data;
}
}