如何从 XML [2 个相同的 children 获取数据,而我只想要其中的 1 个]?

How can I get data from XML [2 identical children and I want only 1 of them]?

我有 XML 文件。这是他的结构:

<data>
 <pos1>
 </pos1>
 <pos2>
 </pos2>
 .
 .
 .
 <pos3>
   <pos1>
   </pos1>
 </pos3>
</data>

我只想要来自 <pos1> 的第一个数据。如果我使用 $xml->getElementsByTagName('pos1') 我收到了所有数据。

是否比从数据中获取所有元素然后搜索 pos1 更好?

您可以尝试使用 DOMXPath::query() :

$xpath = new DOMXPath($yourDomDocument);
$nodes = $xpath->query('//data/pos1');

以上 xpath 查询仅 return <pos1><data> 的 child。