Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 查询XML文件并仅通过具有特定元素名称和属性值的节点循环_Php_Xml_Domxpath - Fatal编程技术网

Php 查询XML文件并仅通过具有特定元素名称和属性值的节点循环

Php 查询XML文件并仅通过具有特定元素名称和属性值的节点循环,php,xml,domxpath,Php,Xml,Domxpath,我有一个xml文件,大小为16.4MB。我只需要选择并打印频道属性值为: BHT 1 以下是xml文件url: 您喜欢这项工作吗 $epgdoc = new DOMDocument(); // put the acutal path to your document here $epgdoc->load('epg.xml'); $xpathvar = new Domxpath($epgdoc); $queryResult = $xpathvar->query("//ch

我有一个xml文件,大小为16.4MB。我只需要选择并打印频道属性值为:

BHT 1

以下是xml文件url:

您喜欢这项工作吗

 $epgdoc = new DOMDocument();
 // put the acutal path to your document here
 $epgdoc->load('epg.xml');

 $xpathvar = new Domxpath($epgdoc);

 $queryResult = $xpathvar->query("//channel[@id='BHT 1']");
 foreach($queryResult as $result){
         echo $result->textContent;
 }

我认为,如果您使用它,您可以得到您所需要的。

您使用什么语言来处理xml文件?此外,第一步是使用XPath(如果可用)选择您要查找的节点
//channel[@id='BHT 1']
i我正在使用php语言…从该文件中获取channel id BHT 1的最佳方法是什么,从性能上看…因为该文件非常大(16.4MB)。我有一个想法,forreach只会点那个值id=“BHT 1”,但若你们能给我一个示例代码,那个就太棒了。谢谢。谢谢..给了代码…我试过了,但它返回了空的空白页…我正在搜索代码中的错误(如果存在)。尝试使用引号,我没有在任何地方运行PHP来测试它
$xpathvar->query('//channel[@id=“BHT 1”]'))
最有可能是Xpath不正确。哦,这是您所使用的代码,它回显了我需要的一行内容……您可以修改代码以回显xml文件中的所有BHT 1 ID吗?这里是要测试的站点:您提供的XML文件只有1 id=“BHT 1”,或者,如果您正在查找所有具有BHT 1通道的
Program
元素,那么只需将Xpath查询更新为
query(“//Program[@channel='BHT 1']”)
,我想这就是您想要的,我误解了最初的问题,因为它混淆了
id
channel