<?php
+/**
+ * @file include/xml.php
+ */
+
+
/**
* @brief This class contain functions to work with XML data
*
* @param object $xml The createdXML will be returned by reference
* @param bool $remove_header Should the XML header be removed or not?
* @param array $namespaces List of namespaces
+ * @param bool $root - interally used parameter. Mustn't be used from outside.
*
* @return string The created XML
*/
- function from_array($array, &$xml, $remove_header = false, $namespaces = array(), $root = true) {
+ public static function from_array($array, &$xml, $remove_header = false, $namespaces = array(), $root = true) {
if ($root) {
foreach($array as $key => $value) {
* @param object $target The XML target
* @param string $elementname Name of the XML element of the target
*/
- function copy(&$source, &$target, $elementname) {
+ public static function copy(&$source, &$target, $elementname) {
if (count($source->children()) == 0)
$target->addChild($elementname, xmlify($source));
else {
self::copy($childentry, $child, $childfield);
}
}
+
+ /**
+ * @brief Create an XML element
+ *
+ * @param object $doc XML root
+ * @param string $element XML element name
+ * @param string $value XML value
+ * @param array $attributes array containing the attributes
+ *
+ * @return object XML element object
+ */
+ public static function create_element($doc, $element, $value = "", $attributes = array()) {
+ $element = $doc->createElement($element, xmlify($value));
+
+ foreach ($attributes AS $key => $value) {
+ $attribute = $doc->createAttribute($key);
+ $attribute->value = xmlify($value);
+ $element->appendChild($attribute);
+ }
+ return $element;
+ }
+
+ /**
+ * @brief Create an XML and append it to the parent object
+ *
+ * @param object $doc XML root
+ * @param object $parent parent object
+ * @param string $element XML element name
+ * @param string $value XML value
+ * @param array $attributes array containing the attributes
+ */
+ public static function add_element($doc, $parent, $element, $value = "", $attributes = array()) {
+ $element = self::create_element($doc, $element, $value, $attributes);
+ $parent->appendChild($element);
+ }
}
?>