2013-07-18 5 views
0

Добрый день.Обработка неупорядоченных списков PHP-HTML

У меня есть страница, которая выглядит так: -edit- Важно отметить, что код DYNAMIC. Мои пользователи загружают эти фотографии, а затем через эхо создается новый объект списка с внутренним кодом img. Я не могу «жестко закодировать», потому что списки НИКОГДА не будут одинаковыми. У меня будут клиенты, загружающие более 50 фотографий, поэтому у них будет более 50 элементов списка. То, что я хочу сделать, - это прекрасный способ превратить этот список, который я создаю в строку. Или я открыт для других предложений.

<ul> 
<li class="ui-state-default"><img code for img 1></li> 
<li class="ui-state-default"><img code 2></li> 
<li class="ui-state-default"><img code 3></li> 
<li class="ui-state-default"><img code 4></li> 
<li class="ui-state-default"><img code 5></li> 
<li class="ui-state-default"><img code 6></li> 
<li class="ui-state-default"><img code 7></li> 
</ul> 

Что я хотел бы сделать, это найти способ обработки этого списка в правильном порядке через PHP.

I.E Создайте XML из этого списка.

Я знаком с SimpleXML, но мне трудно найти, чтобы PHP увидел список. Мой вопрос: как я могу заставить PHP читать этот список, поэтому я могу создать его?

Я пробовал несколько примеров Ajax, Ajax просто усложняется, когда это делается из примеров, которые я видел.

Благодарим за любую помощь, которую вы можете предоставить, пожалуйста, не оставляйте комментарии только, говоря «Использовать DOM» и не объясняя далее. У меня был путь ко многим из них.

редактировать ------------

Моя последняя попытка была эта

<?php 
$dom = new DOMDocument(); 
$dom->loadHTML($data); 
$unorderedList = $dom->getElementsByTagName('ul'); 
foreach ($unorderedList->item(0)->getElementsByTagName('li') as $unorderedList) { 
    echo $unorderedList->nodeValue.'<br />';      
} 
?> 

, но я не могу получить PHP, чтобы иметь возможность видеть список .. . Мой вопрос действительно вращается вокруг того, как заставить PHP видеть список в HTML над ним (на той же странице), а не как создать xml.

+0

Можете ли вы сказать нам, что вы пробовали? – alfasin

+1

«Обработать список» довольно расплывчато. Что вы пытаетесь сделать точно, и почему SimpleXML не работал для вас? – Will

+0

Я только что отредактировал, может быть, это пролить свет. –

ответ

1

Вы перебираете все элементы <li>, но ищите теги изображений. Таким образом, вы должны идти уровень глубже

if ($unorderedList->hasChildNodes()) { 
    foreach ($unorderedList->childNodes as $image) { 
     var_dump($image->getAttribute('src')); 
    } 
} 
1

Сделать as $varname что-то другое, то ваш основной переменной, $unorderedList->nodeValue просто пустой (не текстовое содержимое узла, я признаю, что свойство badly documented«Значение этого узла, в зависимости от его типа» ничего не говорит), это будет:

<br /><br /><br /><br /><br /><br /><br /> 

Если вы хотите, HTML этого содержания:

foreach ($unorderedList->item(0)->getElementsByTagName('li') as $listItem) { 
    foreach($listItem->childNodes as $node){ 
     echo $dom->saveHTML($node);//use $dom->saveXML($node) if in PHP < 5.3.6 
    } 
    echo '<br />';      
} 
+0

Я пробовал (просто скопировать и вставить) и не получил никакого вывода. Возможно, я что-то упускаю. У меня есть ZERO опыт работы с DOM. –

+0

[здесь вы можете видеть, что он не работает в PHP <5.3.6] (http://codepad.org/uVFxMF9s), [и здесь вы можете увидеть этот точный код, работающий с предлагаемым '-> saveXML ($ node); 'для PHP <5.3.6] (http://codepad.org/ANHPlAJr) (по какой-то причине codepad [работает' 5.2.5'] (http://codepad.org/v7rdFrLg) – Wrikken

Смежные вопросы