Конвертировать HTML & lt; dl & gt; во вложенный массив с помощью переполнения стека

Я ищу способ конвертировать список определения HTML <dl> во вложенный массив с помощью PHP.

Пример списка:

<dl>
<dt>A</dt>
<dd>A1</dd>
<dt>B</dt>
<dd>B1</dd>
<dd>B2</dd>
</dl>

Предпочитаемый вывод:

[ 'A' => ['A1'], 'B' => ['B1', 'B2'] ]

Я уже нашел решение jQuery (Превращение HTML <дл> во вложенный массив JavaScript с помощью jQuery), который работает (почти) так, как я хочу, чтобы это было, НО я работаю над проектом без jQuery и поэтому хотел бы сделать то же самое только с PHP.

Я также уже посмотрел на функции PHP, такие как XML_PARSE_INTO_STRUCT, но, к сожалению, я не дошел до рабочего решения с ним.

Так что я в настоящее время застрял с моим поиском. Кто-нибудь может дать мне указатель в правильном направлении?

-2

Решение

Вы можете просто сделать это, используя чистый JS без использования jQuery.

        function dlToObject(dl){
if(!dl){
return {};
}

var elems  = dl.querySelectorAll('dl dt, dl dd'),
parent = '',
result = {};

for(var i=0; i<elems.length; i++){
var element = elems[i];

if(element.tagName.toLowerCase() == 'dt'){
parent = element.innerText;
result[parent] = [];
}else{
result[parent].push(element.innerText)
}
}

return result;
}

var myDl = document.querySelector('dl');

console.log(dlToObject(myDl)); //{'A':['A1'],'B':['B1', 'B2']}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]