从php读取XML标记ID

Sak*_*vel 5 php

我有以下XML文件

<?xml version="1.0" encoding="iso-8859-1"?>
Run Code Online (Sandbox Code Playgroud)

  <Message Id="Language">German</Message>
  <Message Id="LangEnglish">German</Message>

  <Message Id="TopMakeHomepage">
        Mache 4W Consulting Webseite zu deiner Starseite!
  </Message>
  <Message Id="TopLinkEmpSec">
        4W Mitarbeiter
  </Message>
  <Message Id="TopLinkFeedback">
        Feedback
  </Message>
  <Message Id="TopLinkSiteMap">
        Site Map
  </Message>
  <Message Id="TopLinkContactUs">
        Kontakt
  </Message>
  <Message Id="TopSetLangEn">
        ins Englische
  </Message>
  <Message Id="TopSetLangDe">
        ins Deutsche
  </Message>
  <Message Id="TopSetLangEs">
        ins Spanische
  </Message>
  <Message Id="MenuLinks">
        !~|4W Starseite|Company|Über uns|Kontakt|4W anschließen|Services|Kunden Software Entwicklung|Altsystem Neugestalltung &amp; Umwandlung|Altsystem Dokumentation|Daten Umwandlung &amp; Migration|Erstellen von Datenbeschreibungsverzeichnis|System- &amp; Anwendungs Support|Projekt Management &amp; Planunng|Personal Erweiterung|Projekt Ausgliederung|Mitarbeiter Ausbildung|Technologie|Intersystems Caché|M / MUMPS|Zusätzliche Technologien|Methodologie|Feedback|~!
  </Message>
</MsgFile>
Run Code Online (Sandbox Code Playgroud)

在这个XML文件中,我需要使用tagid获取内容.我需要的是当我输入'TopMakeHomepage'时我需要输出'Mache 4W Consulting Webseite zu deiner Starseite!' ...请帮我看看.提前致谢

Rad*_*mko 5

使用SimpleXML

$xml = simplexml_load_file($grabUrl);
foreach ($xml->Message as $message) {
    echo $message->attributes()->Id.'<br />';
}
Run Code Online (Sandbox Code Playgroud)

或者使用XMLReader,使用它可以在处理大型 XML 时错过内存泄漏。

$xml = new XMLReader;
$xml->open($grabUrl);
while ($xml->read()) {
    if ($xml->nodeType === XMLReader::ELEMENT && $xml->name == 'Message')
        echo $xml->getAttribute('Id');
}
Run Code Online (Sandbox Code Playgroud)