Php 使用SimpleXML填充HTML文件
我有一个数组,其中包含以下内容:Php 使用SimpleXML填充HTML文件,php,Php,我有一个数组,其中包含以下内容: $content = array( array( 'classname' => 'nopadding', 'idname' => 'car-volvo', 'title' => 'Volvo' ), array( 'classname' => 'nomargin',
$content = array(
array(
'classname' => 'nopadding',
'idname' => 'car-volvo',
'title' => 'Volvo'
),
array(
'classname' => 'nomargin',
'idname' => 'car-porsche',
'title' => 'Porsche'
)
);
我有一个HTML文件,用作包含以下内容的模板:
<li data-tpl-classname="class" data-tpl-idname="id"><span data-tpl-title="innerHTML"></span></li>
现在,我想将数组与HTML文件一起使用以生成以下内容:
<li class="nopadding" id="car-volvo"><span>Volvo</span></li>
<li class="nopadding" id="car-volvo"><span>Volvo</span></li>
沃尔沃
沃尔沃
我希望编写一个通用函数,该函数接受上面的HTML文件,查找数据tpl-
属性,并用数组中的内容填充
我怎样才能做到这一点?SimpleXML是一种可行的方法吗?我已经尝试将其尽可能概括,但不能保证它适用于所有模板,我需要查看一下它们的通用模式 您可以尝试以下代码:
populate_html($template,$content,'li','data-tpl-');
function populate_html($template,$content,$tag_name,$attr_name){
$dom = new DOMDocument;
$dom->loadHTML($template);
$i=0;
$tag = $dom->getElementsByTagName($tag_name)->item(0);
foreach($content as $k=>$v){
$li = "<".$tag_name;
foreach ($tag->attributes as $attr) {
if(stripos($template,$attr_name)!==FALSE){
$attr_short = substr($attr->nodeName,strrpos($attr->nodeName,'-')+1,strlen($attr->nodeName));
$li .= ' '.$attr->nodeValue.'="'.$content[$i][$attr_short].'"';
}
}
$li .= "><span>".$content[$i]['title']."</span></".$tag_name.">";
$i++;
echo $li;
}
}
populate_html($template,$content,'li','data-tpl-');
函数填充html($template、$content、$tag\u name、$attr\u name){
$dom=新的DOMDocument;
$dom->loadHTML($template);
$i=0;
$tag=$dom->getElementsByTagName($tag\u name)->项(0);
foreach($k=>v的内容){
$li=“”.$content[$i]['title']。”;
$i++;
李元;
}
}
是一个类,它会将包含HTML的字符串分解为属性和值,以便通过它们进行解析
您需要从模板HTML文件中获得什么?你不能只使用数组和你的
输出吗?模板文件告诉我把内容放在哪里。它要么在属性中,要么是元素的innerHTML内容。我的观点是,数组中的所有数据都可以用来构造
属性和值。那么,您是否需要模板文件中的任何内容?是的。因为模板文件只是一个例子。我有许多其他具有不同元素、属性和结构的模板文件。我正在尝试编写一个通用的填充模板函数,不管模板文件看起来如何。