我的文件xml:
<pasaz:Envelope>
<pasaz:Body>
<loadOffe>
<offe>
<off>
<id>120023</id>
<name>my name John</name>
<name>Test</name>
</off>
</offe>
</loadOffe>
</pasaz:Body>
</pasaz:Envelope>
如何查看php(id和名称)。
答案 0 :(得分:1)
如果您只是想要一种简单的方法来提取标记的内容,但又不想麻烦地解析XML,那么您可以这样做:
$xml = ""; // your xml data as a string
function get_tag_contents($xml, $tagName) {
$startPosition = strpos($xml, "<" . $tagName . ">");
$endPosition = strpos($xml, "</" . $tagName . ">");
$length = $endPosition - ($startPosition + 1);
return substr($xml, $startPosition, $length);
}
$id = get_tag_contents($xml, "id");
$name = get_tag_contents($xml, "name");
这假设您没有为您的代码分配任何属性,并且每个代码都是唯一的(在您给我们的示例中,我注意到两个“名称”代码,如果您想要两个,则需要制作此解决方案更健壮或做适当的XML解析。)
答案 1 :(得分:1)
如何获得所有物品? 示例(不起作用..)
$pliks = simplexml_load_file("file.xml");
foreach ($pliks->children('pasaz', true) as $body)
{
foreach ($body->children() as $loadOffe)
{
if ($loadOffe->offe->off) {
echo "<p>id: $loadOffe->id</p>";
echo "$id->id";
echo "<p>name: <b>$name->name</b></p>";
}
}
// echo $loadOffe->offe->off->id;
}
答案 2 :(得分:0)
正如Marc B在评论中建议您使用DOM
,使用getElementsByTagName()
或DOMXPath
,例如getElementaByTagName()
:
$dom = new DOMDocument;
$dom->loadXML($xml);
$ids = $dom->getElementsByTagName('id');
if( $ids || !$ids->length){
throw new Exception( 'Id not found');
}
return $ids->item(0);