0

我有这个 XML:

<eSummaryResult>
    <DocSum>
        <Id>11482001</Id>
        <Item Name="PubDate" Type="Date">2001 Jun</Item>
        <Item Name="EPubDate" Type="Date" />
        <Item Name="Source" Type="String">Adverse Drug React Toxicol Rev</Item>
        <Item Name="AuthorList" Type="List">
            <Item Name="Author" Type="String">Mantle D</Item>
            <Item Name="Author" Type="String">Gok MA</Item>
            <Item Name="Author" Type="String">Lennard TW</Item>
        </Item>
        <Item Name="LastAuthor" Type="String">Lennard TW</Item>
        <Item Name="Title" Type="String">Adverse and beneficial effects of plant extracts on skin and skin disorders.</Item>
        <Item Name="Volume" Type="String">20</Item>
        <Item Name="Issue" Type="String">2</Item>
        <Item Name="Pages" Type="String">89-103</Item>
        <Item Name="LangList" Type="List">
            <Item Name="Lang" Type="String">English</Item>
        </Item>
        <Item Name="NlmUniqueID" Type="String">9109474</Item>
        <Item Name="ISSN" Type="String">0964-198X</Item>
        <Item Name="ESSN" Type="String" />
        <Item Name="PubTypeList" Type="List">
            <Item Name="PubType" Type="String">Journal Article</Item>
            <Item Name="PubType" Type="String">Review</Item>
        </Item>
        <Item Name="RecordStatus" Type="String">PubMed - indexed for MEDLINE</Item>
        <Item Name="PubStatus" Type="String">ppublish</Item>
        <Item Name="ArticleIds" Type="List">
            <Item Name="pubmed" Type="String">11482001</Item>
            <Item Name="eid" Type="String">11482001</Item>
            <Item Name="rid" Type="String">11482001</Item>
        </Item>
        <Item Name="History" Type="List">
            <Item Name="pubmed" Type="Date">2001/08/03 10:00</Item>
            <Item Name="medline" Type="Date">2002/01/23 10:01</Item>
            <Item Name="entrez" Type="Date">2001/08/03 10:00</Item>
        </Item>
        <Item Name="References" Type="List" />
        <Item Name="HasAbstract" Type="Integer">1</Item>
        <Item Name="PmcRefCount" Type="Integer">3</Item>
        <Item Name="FullJournalName" Type="String">Adverse drug reactions and toxicological reviews</Item>
        <Item Name="ELocationID" Type="String" />
        <Item Name="SO" Type="String">2001 Jun;20(2):89-103</Item>
    </DocSum>
</eSummaryResult>

我想按名称获取一些项目,例如:

<Item Name="AuthorList" Type="List">
    <Item Name="Author" Type="String">Mantle D</Item>
    <Item Name="Author" Type="String">Gok MA</Item>
    <Item Name="Author" Type="String">Lennard TW</Item>
</Item>

在这段代码中,我如何获取 Name="Author" 的项目?它必须打印 Mantle D、Gok MA、...

我找到了如何使用 attribute() 获取属性值,但不是这个。

比大家!

4

1 回答 1

1

simplexml并将xpath完成这项工作:

$xml = simplexml_load_string($x); // assume XML in $x
$authors = $xml->xpath("//Item[@Name='Author']");

// echo them out
foreach ($authors as $author) echo "$author <br />";

xpath-expression翻译为:选择所有<Item>节点——无论它们在 XML 中的位置如何(双斜杠)——属性(Name@ 指属性)设置为“作者”。

看到它工作:http ://codepad.viper-7.com/PQSDcV

于 2013-11-11T21:32:59.113 回答