Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
处理无序列表PHP-HTML_Php_Html_Xml_Html Lists - Fatal编程技术网

处理无序列表PHP-HTML

处理无序列表PHP-HTML,php,html,xml,html-lists,Php,Html,Xml,Html Lists,下午好 我有一个页面看起来像这样 -edit-需要注意的是,代码是动态的。我的用户正在上传这些图片,然后通过回音创建一个新的列表对象,其中包含img代码。我不能“硬编码”,因为列表永远不会相同。我将有客户上传50+图片,所以他们将有50+列表项目。我希望能够做的是找到一种方法,将我创建的列表转换成字符串,或者我愿意接受其他建议 <ul> <li class="ui-state-default"><img code for img 1></li> &

下午好

我有一个页面看起来像这样 -edit-需要注意的是,代码是动态的。我的用户正在上传这些图片,然后通过回音创建一个新的列表对象,其中包含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以正确的顺序处理这个列表

即从该列表创建一个XML

我熟悉SimpleXML,但很难让PHP看到列表。我的问题是如何让PHP读取该列表,以便创建它的xml

我试过几个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

您正在遍历所有
  • 元素,但正在查找图像标记。所以你需要更深一层

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

    设置为$varname
    与您的主变量不同,
    $unorderedList->nodeValue
    只是空的(没有文本节点内容,我承认属性是“此节点的值,取决于其类型”),它将输出:

    <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 />';                    
    }
    
    foreach($unorderedList->item(0)->getElementsByTagName('li')作为$listItem){
    foreach($listItem->childNodes作为$node){
    echo$dom->saveHTML($node);//如果在PHP<5.3.6中,则使用$dom->saveXML($node)
    }
    回声“
    ”; }
    您能告诉我们您尝试过什么吗?“处理列表”是一个相当模糊的概念。你到底想做什么,为什么SimpleXML不能为你工作呢?我刚刚编辑了一下,也许这会给你一些启示。那么在你的例子中,什么是
    $data
    ?现在还不清楚您试图从何处获取HTML。我想这就是我要问的问题-如何将php代码上方的列表拉成php可以理解的格式。我尝试了这个(简单的复制和粘贴),但没有收到任何输出。但我可能遗漏了什么。我对DOM没有任何经验。