读取XML PHP的属性问题

时间:2014-07-17 19:38:36

标签: php xml

我想读取一个连接到URL的XML文件。我在阅读它时遇到了问题,因为我没有得到我想要的属性。

XML就是这样:

<response>
  <lst name="responseHeader">
    <int name="status">0</int>
    <int name="QTime">4</int>
    <lst name="params">
    <str name="rows">5</str>
    <str name="q">
    *:* AND -tipocontenido_s:estatico AND category:("Agenda Juvenil")
    </str>
  </lst>
 </lst>
<result name="response" numFound="523" start="0">
<doc>
  <arr name="category">
  <str>Agenda Juvenil</str>
  </arr>
  <arr name="content_type">
  <str>HTML</str>
  </arr>
  </str>
  <str name="description">
  Curso de 12 horas perteneciente al módulo 2 del XX Diploma de intervención social en  pobreza y exclusión. Perfil de las familias en situación de riesgo o exclusión social y realidad de los menores a su cargo. Desarrollo de las competencias sobre infancia y adolescencia en Aragón. Iniciativa social en el trabajo con menores: experiencias y buenas prácticas 3, 5, 10 y 12 de noviembre de 17,30 a 20,30 h
  </str>
  <arr name="dirigidoa_smultiple">...</arr>
  <str name="entrada_t">20 euros   .</str>
  <date name="fechaFinal_dt">2014-11-11T23:00:00Z</date>
  <date name="fechaInicio_dt">2014-11-02T23:00:00Z</date>
  <str name="horario_t">3, 5, 10 y 12 de noviembre de 17,30 a 20,30 h</str>
  <str name="id">acto-113165</str>
  <str name="imagen_s">...</str>
  <str name="language">es</str>
  <date name="last_modified">2014-01-08T09:36:04Z</date>
  <str name="lugar_t">3, 5, 10 y 12 de noviembre de 17,30 a 20,30 h</str>
  <arr name="programap_smultiple">...</arr>
  <arr name="temas_smultiple">...</arr>
  <arr name="text">...</arr>
  <str name="texto_t">desde el 03-11-2014 hasta el 12-11-2014</str>
  <str name="title">
  Intervención socioeducativa con familias y menores en situación vulnerable
  </str>
  <str name="uri">
   http://www.zaragoza.es/ciudad/actividades/juvenil/fichaAJ_Agenda?codigo=113165
  </str>
</doc>
<doc>...</doc>
</result>
</response>

我需要阅读&lt;的所有属性。 doc&gt;,如果你看,有一个&lt;的列表doc&gt;。


我获取连接到URL的XML并使用

返回XML的内容
$xml2 = simplexml_load_file($url2);

然后我这样做:

foreach ($xml2->result->doc as $doc)
{

    foreach($doc->atributes() as $a => $b)
    {
        echo $a,'="',$b,"\"<br>";
    }

如何读取&lt;里面的属性? doc&gt; ?
提前致谢。

问候。

1 个答案:

答案 0 :(得分:0)

使用SimpleXML: 示例如下:

<?php

$xml = simplexml_load_string($string);
foreach($xml->doc[0]->attributes() as $a => $b) {
    echo $a,'="',$b,"\"\n";
}
?>