请教如何将以下代码用PHP保存成XML格式,并用PHP取出来? 本帖最后由 colalc0117 于 2009-07-29 11:28:41 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $doc = new DOMDocument(1.0);$doc -> loadHTMLFile('XmlDomHtml.html');$head = $doc-> getElementsByTagName('head');$body = $doc-> getElementsByTagName('body');getTitle($head);parseBody($body);function getTitle($head){ foreach ($head as $header){ if($header->tagName == 'title'){ echo ("网页标题:{$header->textContent}<br />"); } }}function parseBody($Body){ $bodyTag = $Body-> item(0); foreach ($bodyTag->childNodes as $element){ $content=htmlspecialchars($element->textContent); switch ($element->tagName){ case 'h2': echo "标题2:{$content}<br />"; break; case 'p': echo "段落:{$content}<br />"; break; case 'form': foreach ($element->childNodes as $input){ if ($input->nodeType != XML_ELEMENT_NODE){ continue; } if ($input->tagName == 'select'){ parseSelect($input); } } break; default: echo $content->tagName.'<br />'; break; } }}function parseSelect($select){ echo "下拉选择菜单:<ul>"; $options = $select->childNodes; foreach ($options as $option){ $content = htmlspecialchars($option->textContent); echo "<li>{$content}"; if ($option->hasAttribute('selected')){ echo ' <<<默认选择项'; } echo "</li>"; } echo '</ul>';}巧了 昨天刚刚做的实验 <?php//预先准备的数组,可以从数据库中抽取出来$array = array( array ('title'=>'Google', 'link'=>'http://www.google.com/', 'desc'=>'全球第一大搜索引擎,社我其谁!' ), array( 'title'=>'Baidu', 'link' =>'http://www.baidu.com/', 'desc' =>'中国最大的搜索引擎,谁与争锋!' ));header('content-Type: application/xml;charset=utf-8');//显示XML的内容$xml = records_to_xml($array,"expense");echo $xml;function records_to_xml($array, $xmlname){ $xml .= '<?xml version="1.0" encoding="utf-8" ?>' . "\n"; $xml .= "<$xmlname>\n"; foreach ($array as $key => $subarray){ foreach ($subarray as $k => $v){ $xml .= "<$k>$v</$k>\n"; } } $xml.="</$xmlname>\n"; return $xml;}?> 这段代码是杜江那本书上的 昨天刚刚做了这个方面的实验 你可以按照第二种方式生成XML代码 php求一数组排序方法 大家在网站开发中最喜欢什么浏览器。?? 正则表达式简单问题求指导 求教 excel 导入 mysql 高人能帮我看一下函数有什么问题 初学者问题:页面间变量值如何传递? PHP读取数据库显示问题 如何入门php 一个简单SESSION 问题,请解决。在线等,没分了不好意思. dll文件的路径问题 PHP类的几个绑定的疑惑? appsvr 怎么连不上127.0.0.1
$doc -> loadHTMLFile('XmlDomHtml.html');
$head = $doc-> getElementsByTagName('head');
$body = $doc-> getElementsByTagName('body');
getTitle($head);
parseBody($body);function getTitle($head){
foreach ($head as $header){
if($header->tagName == 'title'){
echo ("网页标题:{$header->textContent}<br />");
}
}
}function parseBody($Body){
$bodyTag = $Body-> item(0);
foreach ($bodyTag->childNodes as $element){
$content=htmlspecialchars($element->textContent);
switch ($element->tagName){
case 'h2':
echo "标题2:{$content}<br />";
break;
case 'p':
echo "段落:{$content}<br />";
break;
case 'form':
foreach ($element->childNodes as $input){
if ($input->nodeType != XML_ELEMENT_NODE){
continue;
}
if ($input->tagName == 'select'){
parseSelect($input);
}
}
break;
default:
echo $content->tagName.'<br />';
break;
}
}
}function parseSelect($select){
echo "下拉选择菜单:<ul>";
$options = $select->childNodes;
foreach ($options as $option){
$content = htmlspecialchars($option->textContent);
echo "<li>{$content}";
if ($option->hasAttribute('selected')){
echo ' <<<默认选择项';
}
echo "</li>";
}
echo '</ul>';
}巧了 昨天刚刚做的实验
//预先准备的数组,可以从数据库中抽取出来
$array = array(
array ('title'=>'Google',
'link'=>'http://www.google.com/',
'desc'=>'全球第一大搜索引擎,社我其谁!'
),
array(
'title'=>'Baidu',
'link' =>'http://www.baidu.com/',
'desc' =>'中国最大的搜索引擎,谁与争锋!'
)
);
header('content-Type: application/xml;charset=utf-8');
//显示XML的内容
$xml = records_to_xml($array,"expense");
echo $xml;function records_to_xml($array, $xmlname){
$xml .= '<?xml version="1.0" encoding="utf-8" ?>' . "\n";
$xml .= "<$xmlname>\n";
foreach ($array as $key => $subarray){
foreach ($subarray as $k => $v){
$xml .= "<$k>$v</$k>\n";
}
}
$xml.="</$xmlname>\n";
return $xml;
}?>