如何在<model>
代码之间获得<make_1></make_1>
代码? <model>
标记可以是任意数量的标记。
<make_1>
<model_1>product Name</model_1>
<model_2>product Name</model_2>
<model_3>product Name</model_3>
<model_4>product Name</model_4>
</make_1>
答案 0 :(得分:2)
如果我没有误解你的要求,那么你可以尝试如下。 php.net有一个超级简单示例,用于父标记中的count
元素。请参阅此处的示例http://php.net/manual/en/simplexmlelement.count.php,我们也建议您查看有关SimpleXMLElement
$xml = <<<EOF
<make_1>
<model_1>product Name</model_1>
<model_2>product Name</model_2>
<model_3>product Name</model_3>
<model_4>product Name</model_4>
</make_1>
EOF;
$elem = new SimpleXMLElement($xml);
// THIS IS JUST FOR DEBUG PURPOSE
print '<pre>';
print_r($elem);
print '<pre>';
echo "Element Count: ". $elem->count();
输出:元素数:4
DEMO: https://eval.in/980182
答案 1 :(得分:2)
您可以将字符串设为SimpleXML对象,然后只计算它(假设它总是一个级别)。
$xml = new simplexmlelement('<make_1>
<model_1>product Name</model_1>
<model_2>product Name</model_2>
<model_3>product Name</model_3>
<model_4>product Name</model_4>
</make_1>');
echo count($xml);
答案 2 :(得分:0)
只是另一种解决方案:
<?php
$string='<make_1>
<model_1>product Name</model_1>
<model_2>product Name</model_2>
<model_3>product Name</model_3>
<model_4>product Name</model_4>
</make_1>';
echo preg_match_all("/(<model_[^>]+\>)/i", $string, $matches);
输出:
4
来源:http://php.net/manual/en/function.preg-match-all.php
DEMO:http://sandbox.onlinephpfunctions.com/code/56fb35a317e81bd3bc6d79abec720d1ab09063d1