php - 如何使用 PHP 解析 XML
问题描述
我正在尝试使用 php 解析以下 xmlSimpleXMLElement
但我无法访问cenc:default_KID
<?php
$XML = <<<XML
<?xml version="1.0" ?>
<MPD mediaPresentationDuration="PT5.000S" minBufferTime="PT3.00S" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="static" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:cenc="urn:mpeg:cenc:2013" xmlns:mspr="urn:microsoft:playready">
<!-- Created with KeyOS DASHPack, VERSION=1.5.0-576 -->
<Period>
<AdaptationSet lang="en" mimeType="audio/mp4" segmentAlignment="true" startWithSAP="1">
<ContentProtection cenc:default_KID="f1320954-b50d-4495-bdeb-b30c6ac8fd5c" schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
<ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95">
<mspr:pro>PABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgBWAEEAawB5ADgAUQAyADEAbABVAFMAOQA2ADcATQBNAGEAcwBqADkAWABBAD0APQA8AC8ASwBJAEQAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcAA6AC8ALwBzAGwAZAByAG0ALgBsAGkAYwBlAG4AcwBlAGsAZQB5AHMAZQByAHYAZQByAC4AYwBvAG0ALwBjAG8AcgBlAC8AcgBpAGcAaAB0AHMAbQBhAG4AYQBnAGUAcgAuAGEAcwBtAHgAPAAvAEwAQQBfAFUAUgBMAD4APABEAFMAXwBJAEQAPgBWAGwAUgA3AEkAZABzAEkASgBFAHUAUgBkADAANgBMAGEAcQBzADIAagB3AD0APQA8AC8ARABTAF8ASQBEAD4APABDAFUAUwBUAE8ATQBBAFQAVABSAEkAQgBVAFQARQBTACAAeABtAGwAbgBzAD0AIgAiAD4APABDAEkARAA+AFYAbgB4AGcAaAAzAHUARABuADAAbQBnAHkAcQA1AG8AUABPAGYALwAzAHcAPQA9ADwALwBDAEkARAA+ADwARABSAE0AVABZAFAARQA+AHMAbQBvAG8AdABoADwALwBEAFIATQBUAFkAUABFAD4APAAvAEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAPgA8AEMASABFAEMASwBTAFUATQA+ADIAMQBXAG8ATQAwAFMALwBuAEUAVQA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</mspr:pro>
</ContentProtection>
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"/>
<SegmentTemplate duration="3000" initialization="\$RepresentationID\$/init.mp4" media="\$RepresentationID\$/seg-\$Number\$.m4f" startNumber="0" timescale="1000"/>
<Representation bandwidth="139246" codecs="mp4a.40.2" id="audio/en"/>
</AdaptationSet>
<AdaptationSet mimeType="video/mp4" segmentAlignment="true" startWithSAP="1">
<ContentProtection cenc:default_KID="f1320954-b50d-4495-bdeb-b30c6ac8fd5c" schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
<ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95">
<mspr:pro>PABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgBWAEEAawB5ADgAUQAyADEAbABVAFMAOQA2ADcATQBNAGEAcwBqADkAWABBAD0APQA8AC8ASwBJAEQAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcAA6AC8ALwBzAGwAZAByAG0ALgBsAGkAYwBlAG4AcwBlAGsAZQB5AHMAZQByAHYAZQByAC4AYwBvAG0ALwBjAG8AcgBlAC8AcgBpAGcAaAB0AHMAbQBhAG4AYQBnAGUAcgAuAGEAcwBtAHgAPAAvAEwAQQBfAFUAUgBMAD4APABEAFMAXwBJAEQAPgBWAGwAUgA3AEkAZABzAEkASgBFAHUAUgBkADAANgBMAGEAcQBzADIAagB3AD0APQA8AC8ARABTAF8ASQBEAD4APABDAFUAUwBUAE8ATQBBAFQAVABSAEkAQgBVAFQARQBTACAAeABtAGwAbgBzAD0AIgAiAD4APABDAEkARAA+AFYAbgB4AGcAaAAzAHUARABuADAAbQBnAHkAcQA1AG8AUABPAGYALwAzAHcAPQA9ADwALwBDAEkARAA+ADwARABSAE0AVABZAFAARQA+AHMAbQBvAG8AdABoADwALwBEAFIATQBUAFkAUABFAD4APAAvAEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAPgA8AEMASABFAEMASwBTAFUATQA+ADIAMQBXAG8ATQAwAFMALwBuAEUAVQA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</mspr:pro>
</ContentProtection>
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"/>
<SegmentTemplate duration="3000" initialization="\$RepresentationID\$/init.mp4" media="\$RepresentationID\$/seg-\$Number\$.m4f" startNumber="0" timescale="1000"/>
<Representation bandwidth="353749" codecs="avc1.42c015" height="306" id="video/1" width="544"/>
<Representation bandwidth="805397" codecs="avc1.42c01e" height="468" id="video/2" width="832"/>
<Representation bandwidth="1326650" codecs="avc1.42c01f" height="604" id="video/3" width="1072"/>
<Representation bandwidth="1886984" codecs="avc1.42c01f" height="720" id="video/4" width="1280"/>
</AdaptationSet>
</Period>
</MPD>
XML;
$parser = new SimpleXMLElement($XML);
现在怎么访问cenc:default_KID="f1320954-b50d-4495-bdeb-b30c6ac8fd5c"
??
解决方案
尝试这个 :
<?php
$XML = ' Your XML';
$MPD = new SimpleXMLElement($xmlstr);
$MPD->Period->AdaptationSet->ContentProtection as $Content;
echo $Content[0]['cenc:default_KID'];
?>
推荐阅读
- ios - 如何在模拟器中通过 Swift 5 检测外部麦克风
- javascript - js - 为什么在函数外使用时等待不抛出错误
- javascript - 我应该为 SocketIO 创建一个特定的路由吗?
- mysql - 无法使用 NodeRed 函数从 MySQL 获得响应
- r - 如何绘制拟合线?
- java - Spring Boot 覆盖通配符请求映射
- amazon-web-services - AWS - 使用 SecureTransport 设置策略后权限被拒绝:false
- apache - 带有范围列表的 Apache 表达式“-ipmatch”
- sql-server - SQL server - 在windows中使用Debezium的kafka CDC连接
- imap - IMAP 服务器如何检测消息结束并响应 APPEND 完成?