我真的需要使用命名空间的帮助。如何使以下代码正常工作?
<?php
$mytv = simplexml_load_string(
'<?xml version="1.0" encoding="utf-8"?>
<mytv>
<mytv:channelone>
<mytv:description>comedy that makes you laugh</mytv:description>
</mytv:channelone>
</mytv>'
);
foreach ($mytv as $mytv1)
{
echo 'description: ', $mytv1->children('mytv', true)->channelone->description;
}
?>
我要做的就是获取name元素中的内容。
答案 0 :(得分:2)
当yu使用xml中的命名空间时,yu应该定义命名空间,无论你使用什么......!在我发布的代码中你可以看到如何定义你正在使用的命名空间..
你需要显示特定于命名空间的描述不是吗?如果我错了,请纠正我。并且请妥善发布我的目的,以便我能理解你的问题..
使用此代码,看看您是否可以得到一些想法..
$xml ='<mytv>
<mytv:channelone xmlns:mytv="http://mycompany/namespaces/mytvs">
<mytv:description >comedy that makes you laugh</mytv:description>
</mytv:channelone>
</mytv>';
$xml = simplexml_load_string($xml);
$doc = new DOMDocument();
$str = $xml->asXML();
$doc->loadXML($str);
$bar_count = $doc->getElementsByTagName("description");
foreach ($bar_count as $node)
{
echo $node->nodeName." - ".$node->nodeValue."-".$node->prefix. "<br>";
}
此处,值“$ node-&gt; prefix”将是包含“description”的标记的命名空间。
getElementsByTagName(“description”)用于将包含描述的xml中的所有元素作为标记... !!然后使用“$ node-&gt;前缀”,根据需要与特定命名空间进行比较,然后打印..