Объект PHP как XML-документ

Если то, что вы пытаетесь достичь, это расширение баров на графике, ggplot, похоже, не поддерживает это для geom_bar. Тем не менее, довольно просто реализовать панель с использованием geom_rect.

Поскольку многие из точек данных, по-видимому, расположены на расстоянии примерно двух часов друг от друга, я предполагаю, что ширина 0.9, которую вы хотите достичь, равна 0,9 часов в обе стороны заданного времени (так что в основном выжимают большую часть пространства между полосками.

Если это то, что вы хотите, следующий код должен работать:

library(lubridate)

ggplot(DF, aes(xmin=time-minutes(54), xmax=time+minutes(54), ymin=0, ymax=count,
           fill=level)) +
geom_rect(color="#666666")
48
задан Chris 26 September 2008 в 19:10
поделиться

6 ответов

смотрите на ГРУШУ пакет XML_Serializer . Я использовал его с довольно хорошими результатами. Можно питаться, это выстраивает, объекты и т.д., и это превратит их в XML. Это также имеет набор опций как выбор названия корневого узла и т.д.

, Должен добиться цели

39
ответ дан phatduckk 7 November 2019 в 22:22
поделиться

Используйте функцию dom, чтобы сделать это: http://www.php.net/manual/en/function.dom-import-simplexml.php

Импорт SimpleXML возражают и затем сохраняют. Вышеупомянутая ссылка содержит пример.:)

Вкратце:

<?php
$array = array('hello' => 'world', 'good' => 'morning');

$xml = simplexml_load_string("<?xml version='1.0' encoding='utf-8'?><foo />");
foreach ($array as $k=>$v) {
  $xml->addChild($k, $v);
}
?>
5
ответ дан Till 7 November 2019 в 22:22
поделиться

используйте WDDX: http://uk.php.net/manual/en/wddx.examples.php

(если это расширение установлено)

оно выделено этому:

http://www.openwddx.org/

2
ответ дан user22960 7 November 2019 в 22:22
поделиться

Ну, в то время как немного грязный, Вы могли всегда выполнять цикл на свойствах объекта...

$_xml = '';
foreach($obj as $key => $val){
  $_xml .= '<' . $key . '>' . $val . '</' . $key . ">\n";
}

Используя fopen/fwrite/fclose Вы могли генерировать документ XML с $_xml переменная как содержание. Это ужасно, но это работало бы.

-1
ответ дан mauris 26 November 2019 в 18:40
поделиться

Не совсем ответ на оригинальный вопрос, но то, как я решил свою проблему с этим было объявление о моем объекте как:

$root = '<?xml version="1.0" encoding="UTF-8"?><Activities/>';
$object = new simpleXMLElement($root); 

в отличие от:

$object = new stdClass;

, прежде чем я начал добавлять какие-либо значения!

10
ответ дан 26 November 2019 в 18:40
поделиться

Везде, где существует возможность возникновения исключения, "лучшая практика" заключается в его обработке, конструкторе или другом.

Он добавляет конструктору еще один уровень сложности, так как необходимо убедиться, что все инициализировано правильно, даже если произошла ошибка, но это лучше, чем иметь код багги:)

-121--2681554-

Я широко протестировал редакторы для Java и предпочитаю Netbeans Eclipse со значительным отрывом. NetBeans имеет отличную поддержку Java, очень красивый пользовательский интерфейс и мощные функции. Он также имеет отличную поддержку C++ и я бы выбрал для этого его, скажем, Visual Studio. Рассмотрим классическое издание JCreator, отличное место для начала, хотя и не такое мощное, как NetBeans, в которое легче попасть на первых порах.

Я бы также защитить плагины NetBeans против Eclipse, потому что, хотя Eclipse высоко оценен за гибкость, которая обеспечивается плагинами я думаю, что это в значительной степени до того, что также очень мощные функции плагинов NetBeans не кричат о так много, хотя он также очень сильный в этой области. Я видел приложения для динамики вычислительных сред, основанные на платформе NetBeans, очень впечатляющие, я просто не думаю, что разработчики NetBeans делают такое большое дело над ним, потому что это уже полный пакет с момента загрузки, мощный без необходимости конфигурации с плагинами.

-121--1543265-

Я бы согласился с использованием XML_Serializer PEAR, но если вы хотите что-то простое, которое поддерживает объекты/массивы, которые имеют вложенные свойства, вы можете использовать это.

class XMLSerializer {

    // functions adopted from http://www.sean-barton.co.uk/2009/03/turning-an-array-or-object-into-xml-using-php/

    public static function generateValidXmlFromObj(stdClass $obj, $node_block='nodes', $node_name='node') {
        $arr = get_object_vars($obj);
        return self::generateValidXmlFromArray($arr, $node_block, $node_name);
    }

    public static function generateValidXmlFromArray($array, $node_block='nodes', $node_name='node') {
        $xml = '<?xml version="1.0" encoding="UTF-8" ?>';

        $xml .= '<' . $node_block . '>';
        $xml .= self::generateXmlFromArray($array, $node_name);
        $xml .= '</' . $node_block . '>';

        return $xml;
    }

    private static function generateXmlFromArray($array, $node_name) {
        $xml = '';

        if (is_array($array) || is_object($array)) {
            foreach ($array as $key=>$value) {
                if (is_numeric($key)) {
                    $key = $node_name;
                }

                $xml .= '<' . $key . '>' . self::generateXmlFromArray($value, $node_name) . '</' . $key . '>';
            }
        } else {
            $xml = htmlspecialchars($array, ENT_QUOTES);
        }

        return $xml;
    }

}
49
ответ дан 26 November 2019 в 18:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: