当前位置: 首页 > 面试题库 >

PHP计数XML元素

訾稳
2023-03-14
问题内容

嗨,什么是计算XML文件中元素数量的最佳方法?就我而言,我想计算标签“ OfferNameList”中名称为“ OfferName”的XML标签的数量。

下面的XML包含在php变量$ offers中

$html" target="_blank">offers = '<OfferNameList>
  <OfferName>...</OfferName>
  <OfferName>...</OfferName>
  <OfferName>...</OfferName>
  ...
</OfferNameList>';

谢谢您的帮助


问题答案:

DOM您可以使用

$dom->getElementsByTagName('OfferName')->length;

计算 所有OfferName元素
length是的属性DOMNodeList

要计算 OfferNameList中的所有OfferName元素
,可以使用DOMXPath::evaluate

$xpath->evaluate('count(//OfferNameList/OfferName');

请注意,由于XPath查询将仅考虑直接子级,因此in
有些不准确。如果您在OfferNameList元素下方的任何地方都需要OfferName元素,请调整您的问题。

另请注意,这//将查询文档中的任何位置,这对于大型文档而言可能效率较低。如果您知道OfferNameList元素仅出现在XML中的某个位置,请使用直接路径。

完整的工作示例 (在键盘上运行):

$xml = <<< XML
<root>
    <NotOfferNameList>
      <OfferName>...</OfferName>
      <OfferName>...</OfferName>
      <OfferName>...</OfferName>
    </NotOfferNameList>
    <OfferNameList>
      <OfferName>...</OfferName>
      <OfferName>...</OfferName>
      <OfferName>...</OfferName>
    </OfferNameList>;
</root>
XML;

$dom = new DOMDocument;
$dom->loadXml($xml);

// count all OfferName elements
echo $dom->getElementsByTagName('OfferName')->length, PHP_EOL; // 6

// count all OfferNameList/OfferName elements
$xp = new DOMXPath($dom);
echo $xp->evaluate('count(//OfferNameList/OfferName)'); // 3


 类似资料:
  • 本文向大家介绍php统计数组元素个数的方法,包括了php统计数组元素个数的方法的使用技巧和注意事项,需要的朋友参考一下 count():对数组中的元素个数进行统计; sizeof():和count()具有同样的用途,这两个函数都可以返回数组元素个数.可以得到一个常规标量变量中的元素个数,如果传递给这个函数的数组是一个空数组,或者是一个没有经过设定的变量,返回的数组元素个数就是0; array_co

  • 本文向大家介绍php操作xml入门之xml基本介绍及xml标签元素,包括了php操作xml入门之xml基本介绍及xml标签元素的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php操作xml入门之xml基本介绍及xml标签元素。分享给大家供大家参考。具体分析如下: 以xml实例来讲解: 一、xml声明: <?xml version="1.0" encoding="utf-8" standa

  • 主要内容:什么是 XML 元素?,XML 命名规则,最佳命名习惯,XML 元素是可扩展的XML 文档包含 XML 元素。 什么是 XML 元素? XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。 一个元素可以包含: 其他元素 文本 属性 或混合以上所有... <bookstore> <book category="CHILDREN"> <title>Harry Potter</title> <author>J K. Rowling</author> <year>2

  • 我正在尝试创建包含另一个XML的XML文档,比如child。 首先,我有一个对象Foo,它有一些属性。我用这个函数序列化它: 在另一个我无法访问Foo类的类中,我需要用这个Foo字符串在xml文档中保存一些数据。所以我有另一个像这样的物体: 当我序列化这个Bar对象并像xml文档一样保存它时。对于FooString元素,我得到了类似的结果。 我明白这个超文本标记语言字符实体(

  • 主要内容:PHP XML Parser 简介,安装,PHP XML Parser 函数,PHP XML Parser 常量PHP XML Parser 简介 XML 函数允许您解析 XML 文档,但无法对其进行验证。 XML 是一种用于标准结构化文档交换的数据格式。您可以在我们的 XML 教程 中找到更多有关 XML 的信息。 该扩展使用 Expat XML 解析器。 Expat 是一种基于事件的解析器,它把 XML 文档视为一系列事件。当某个事件发生时,它调用一个指定的函数处理它。 Expat

  • 我正在写一个PHP脚本来获取rss新提要并显示,使用php我设法显示提要的大部分内容, 但仍然坚持访问图像链接。 我的密码在这里 但是图像属性在另一个级别内 xml变量转储的示例部分 我试图通过