php xml通过http从xml获取值,然后将其存储为字符串

php xml通过http从xml获取值,然后将其存储为字符串,php,xml,string,select,Php,Xml,String,Select,好的,这个XML/php脚本确实有一些问题 我想通过http加载以下xml <WowzaMediaServer> <ConnectionsCurrent>3</ConnectionsCurrent> <ConnectionsTotal>26</ConnectionsTotal> <ConnectionsTotalAccepted>20</ConnectionsTotalAccepted> <Connecti

好的,这个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的子对象中选择trh数据。如果我理解正确,您正在尝试从发布的XML中提取数据。以下代码从提供的XML获取名称和SessionFlash:

$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;
}

我也为Wowza媒体服务器构建脚本。这就是我在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;
        }

我不想要名称,我想要名称=x和名称=x的streamflash为什么你不能查询SessionFlash并完成?XML中有一个实例。否,因为将有多个实例:或者很简单:尝试以下方法:$viewers\u temp=$XML->xpath'/WowzaMediaServer/VHost/Application[Name=$channel\u id]/ApplicationInstance/Stream/[Name=$channel\u id]$viewers\u test=$viewers\u temp->item0->nodeValue;但这似乎不起作用……嗯,这是你应该在问题中说明的。。。用工作代码更新了答案。过来看。
$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);
        $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;
        }