php xml通过http从xml获取值,然后将其存储为字符串
好的,这个XML/php脚本确实有一些问题 我想通过http加载以下xmlphp 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
<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;
}