【问题标题】:How to parse the XML with PHP [duplicate]如何用 PHP 解析 XML [重复]
【发布时间】:2021-01-07 11:31:19
【问题描述】:

我正在尝试使用 php SimpleXMLElement 解析以下 xml 但我无法访问 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-parsing


    【解决方案1】:

    试试这个:

    <?php
    
    $XML = ' Your XML';
    
    $MPD = new SimpleXMLElement($xmlstr);
    
    $MPD->Period->AdaptationSet->ContentProtection as $Content;
    
    echo $Content[0]['cenc:default_KID'];
    
    ?>
    
    

    【讨论】:

    • 这不起作用,返回NULL
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-16
    • 1970-01-01
    • 1970-01-01
    • 2018-05-23
    • 2011-04-07
    • 2019-05-15
    • 1970-01-01
    相关资源
    最近更新 更多