1

さて、私は本当にこの XML / PHP スクリプトに問題があります

http経由でロードしたい次のxmlがあります

<WowzaMediaServer>
<ConnectionsCurrent>3</ConnectionsCurrent>
<ConnectionsTotal>26</ConnectionsTotal>
<ConnectionsTotalAccepted>20</ConnectionsTotalAccepted>
<ConnectionsTotalRejected>6</ConnectionsTotalRejected>
<MessagesInBytesRate>3248.0</MessagesInBytesRate>
<MessagesOutBytesRate>1054.0</MessagesOutBytesRate>
<VHost>
<Name>_defaultVHost_</Name>
<TimeRunning>28752.989</TimeRunning>
<ConnectionsLimit>0</ConnectionsLimit>
<ConnectionsCurrent>3</ConnectionsCurrent>
<ConnectionsTotal>26</ConnectionsTotal>
<ConnectionsTotalAccepted>20</ConnectionsTotalAccepted>
<ConnectionsTotalRejected>6</ConnectionsTotalRejected>
<MessagesInBytesRate>3248.0</MessagesInBytesRate>
<MessagesOutBytesRate>1054.0</MessagesOutBytesRate>
<Application>
<Name>zahlio</Name>
<Status>loaded</Status>
<TimeRunning>3339.479</TimeRunning>
<ConnectionsCurrent>3</ConnectionsCurrent>
<ConnectionsTotal>14</ConnectionsTotal>
<ConnectionsTotalAccepted>14</ConnectionsTotalAccepted>
<ConnectionsTotalRejected>0</ConnectionsTotalRejected>
<MessagesInBytesRate>31595.0</MessagesInBytesRate>
<MessagesOutBytesRate>32045.0</MessagesOutBytesRate>
<ApplicationInstance>
<Name>_definst_</Name>
<TimeRunning>3339.478</TimeRunning>
<ConnectionsCurrent>3</ConnectionsCurrent>
<ConnectionsTotal>14</ConnectionsTotal>
<ConnectionsTotalAccepted>14</ConnectionsTotalAccepted>
<ConnectionsTotalRejected>0</ConnectionsTotalRejected>
<MessagesInBytesRate>31594.0</MessagesInBytesRate>
<MessagesOutBytesRate>32045.0</MessagesOutBytesRate>
<Stream>
<Name>zahlio</Name>
<SessionsFlash>2</SessionsFlash>
<SessionsCupertino>0</SessionsCupertino>
<SessionsSanJose>0</SessionsSanJose>
<SessionsSmooth>0</SessionsSmooth>
<SessionsRTSP>0</SessionsRTSP>
<SessionsTotal>2</SessionsTotal>
</Stream>
</ApplicationInstance>
</Application>
</VHost>
</WowzaMediaServer>

ロードしたいデータは、x<SessionsFlash>を名前として、x を変数として、この場合は zahlio から取得したものです。2<stream>

この http を使用してロードします: http://username:pwd@mydomian.com:8086/connectioncounts

これは私の現在のphpスクリプトです:

$sxe = new SimpleXMLElement('http://username:pwd@mydomian.com:8086/connectioncounts');
    $propNode = $sxe->xpath('/WowzaMediaServer/VHost/Application/ApplicationInstance/Stream');
    $count = $propNode->getChildren("SessionsFlash");

それは機能せず、xという名前の子からtrhデータを選択する方法がわかりません

4

2 に答える 2

0

私の理解が正しければ、投稿した XML からデータを抽出しようとしています。次のコードは、提供された XML からNameandを取得します。SessionsFlash

$dom = new DOMDocument();
@$dom->loadXML($xml);
$xpath = new DOMXPath($dom);
$search_name = 'zahlio';
$items = $xpath->query('/WowzaMediaServer/VHost/Application[Name="' . $search_name . '"]/ApplicationInstance/Stream[Name="' . $search_name . '"]');
for ($i = 0; $i < $items->length; $i++)
{
    $temp = $xpath->query('SessionsFlash', $items->item($i));
    $SessionsFlash = $temp->item(0)->nodeValue;
    echo $SessionsFlash;
}

サーバーはダイジェスト認証を使用していましたが、ブラウザーはそれを自動的に処理し、PHP は何らかの助けを必要としています。動作するコードは次のとおりです。

$ch = curl_init('http://user:pwd@website.net:8086/connectioncounts');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
$xml = curl_exec($ch);
于 2013-02-09T20:57:07.450 に答える
0

Wowza Media Server 用のスクリプトも作成しています。これは私がphpでXMLを読む方法です。多分それが役立つかもしれません

        $dom=new DOMDocument;
        $dom->preserveWhiteSpace = false;
        $dom->load('/home/vichea/wowza_visitor/wowza_serverinfo.xml');
        $date=date("d/m/Y");
        $date_file=date('mY');

        $dataset0=$dom->getElementsByTagName("VHost");
        foreach($dataset0 as $row){
            $xmlC=$row->getElementsByTagName("ConnectionsTotal");
            $xmlConn=$xmlC->item(0)->nodeValue;

            $st[]=$xmlConn;
        }
于 2013-11-20T07:30:40.883 に答える