请问在PHP中,如何输出test.xml中id=1的内容?效果:<a href="链接1">标题1</a>注:test.xml中的id是无序的,如下所示:
<?xml version="1.0" encoding="utf-8" ?> 
<records>
  <record>
    <id>7</id> 
    <subject>标题7</subject> 
    <url>链接7</url> 
  </record>
  <record>
    <id>3</id> 
    <subject>标题3</subject> 
    <url>链接3</url> 
  </record>
  ………………
  <record>
    <id>1</id> 
    <subject>标题1</subject> 
    <url>链接1</url> 
  </record>
  ………………
  <record>
    <id>5</id> 
    <subject>标题5</subject> 
    <url>链接5</url> 
  </record>
  <record>
    <id>6</id> 
    <subject>标题6</subject> 
    <url>链接6</url> 
  </record>
  ………………
</records>

解决方案 »

  1.   

    <?php
    $xml = <<<XML
    <?xml version="1.0" encoding="utf-8" ?> 
    <records>
      <record>
        <id>7</id> 
        <subject>标题7</subject> 
        <url>链接7</url> 
      </record>
      <record>
        <id>3</id> 
        <subject>标题3</subject> 
        <url>链接3</url> 
      </record>
    </records>
    XML;$obj = simplexml_load_string($xml);
    foreach ($obj->record as $record)
    {
    if ($record->id == 1)
    {
    //echo htmlentities("<a href={$record->url}>{$record->subject}</a>");
    echo ("<a href={$record->url}>{$record->subject}</a><br>");
    }
    }
    ?>
      

  2.   

    楼上的代码可以实现,但用起来比较麻烦,因为不止调用ID为1的数据,还有其他的。能否先写定义一个变量,然后可以直接调用<?php echo $subject[id=?];?>和<?php echo $url[id=?];?>
      

  3.   


    $subject = array();
    $url = array();
    foreach ($obj->record as $records)
    {
    $id = (int)$records->id;
    $subject[$id] = (string)$records->subject;
    $url[$id] = (string)$records->url;
    }echo "<pre>";var_export($subject);
    echo "<pre>";var_export($url);
    这样就可以了。。