如何在XML文档中提取<uri> </uri>的内容?

时间:2012-02-08 18:11:57

标签: php dom simplexml

我有一份文件说它的结构如下所示 有很多<entry>。我的问题是如何输出每个条目的<uri>?另一个问题是,我如何仅输出USERNAME

这是我想要获取用户名http://search.twitter.com/search.atom?q=yankees

的文件
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns:google="http://base.google.com/ns/1.0" xml:lang="en-US" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns="http://www.w3.org/2005/Atom" xmlns:twitter="http://api.twitter.com/" xmlns:georss="http://www.georss.org/georss">

<entry>
  <author>
    <name></name>
      <uri>http://twitter.com/USERNAME</uri>
  </author>
</entry>

3 个答案:

答案 0 :(得分:0)

<?php
$xml = new DOMDocument;

// link to ur file
$xml->load('');    

foreach ($xml->getElementsByTagName('entry') as $product ) 
{
    $append = array();

    foreach($product->getElementsByTagName('uri') as $name ) {
        // Stick $name onto the array
        $append[] = $name;
    }
}

$result = $xml->saveXML();
print_r(str_replace('http://twitter.com/','',$result));
?>

答案 1 :(得分:0)

答案 2 :(得分:0)

你应该使用SimpleXML某种循环,它通过所有s。 (foreach($xml->entry as $entry)循环应该可以正常工作,我想。)

对于第二个:如果它始终是http://twitter.com/USERNAME,只需计算前缀的长度而不是使用substr。

要使用的资源:substrSimpleXMLSimpleXML