Как отсортировать элементы элемента в RSS-канале, вложенные в simpleXML [duplicate]

Хорошо. Надеюсь, у меня все получилось. Ваш вход выглядит примерно так:

kv_input = [("a", 1), ("a", 2), ("a", 3), ("b", 1), ("b", 5)]

, и вы хотите получить что-то вроде этого:

kmv_output = [("a", [1, 2, 3]), ("b", [1, 5])]

Тогда это может выполнить задание (см. здесь ):

d = dict()
for k, v in kv_input:
    d.setdefault(k, list()).append(v)
kmv_output = list(d.items())

Если я ошибаюсь, скажите, пожалуйста, чтобы я мог настроить это на ваши нужды.

PS: a.append([b]) всегда возвращается None , Возможно, вы захотите наблюдать либо [b], либо a, но не результат append.

2
задан Weston C 21 July 2009 в 04:12
поделиться

2 ответа

Привет неизвестно. Для этого вам необходимо использовать интерфейс DOMElement для ваших объектов SimpleXML.

<?php

$s = new SimpleXMLElement('<root/>');
$t = new DOMElement('child');

$dom = dom_import_simplexml($s);
$dom->appendChild($t);

echo $s->asXML();
// <root><child/></root>

Если вам нужны более конкретные детали, сообщите мне. В документации и комментариях для метода dom_import_simplexml () есть несколько примеров: http://php.net/dom_import_simplexml

7
ответ дан hobodave 28 August 2018 в 06:45
поделиться

Я не уверен, что это поможет, но вы также можете расширить SimpleXML, чтобы работать так, как вы ожидаете. Вот проект, над которым я работал в классе bLibrary Xml . Вы можете посмотреть на него, чтобы настроить SimpleXml на работу, как вы ожидаете.

1
ответ дан null 28 August 2018 в 06:45
поделиться
Другие вопросы по тегам:

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