Einzelnen Beitrag anzeigen
  #1  
Alt 04.05.2018, 10:00:44
miamiomc miamiomc ist offline
Anfänger
 
Registriert seit: Feb 2014
Alter: 55
Beiträge: 4
Attributnamen mit xml_set_element_handler

Hallo Gemeinde,

ich parse ein XML-Dokument mit dem Code:
PHP-Code:
<?php
$file 
"muster.xml";

function 
startElement($parser$name$attrs
{
        echo 
$name." | ";
        foreach(
$attrs as $attribute)
        {
            echo 
$attribute." >< ";
        }
    
#}
}

function 
endElement($parser$name
{
        echo 
$name;
}

function 
characterData($parser$data
{
    echo 
$data."<BR>";
}

$xml_parser xml_parser_create();
// use case-folding so we are sure to find the tag in $map_array
xml_parser_set_option($xml_parserXML_OPTION_CASE_FOLDINGtrue);
xml_set_element_handler($xml_parser"startElement""endElement");
xml_set_character_data_handler($xml_parser"characterData");
if (!(
$fp fopen($file"r"))) {
    die(
"could not open XML input");
}

while (
$data fread($fp4096)) {
    if (!
xml_parse($xml_parser$datafeof($fp))) {
        die(
sprintf("XML error: %s at line %d",
                    
xml_error_string(xml_get_error_code($xml_parser)),
                    
xml_get_current_line_number($xml_parser)));
    }
}
xml_parser_free($xml_parser);
?>
Dabei benötige ich nur den Wert des Attributes sondern auch den Namen. Weiß jemand was zu tun ist. in der PHP-Dokumentation habe ich nichts gefunden.

Die XML-Datei:

HTML-Code:
<?xml version="1.0" encoding="utf-8"?>
<SessionData SchemaVersion="2.0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Header>
<SessionInfo StartTime="2018-03-02T11:34:37.8546418+01:00" EndTime="2018-03-02T12:27:30.6375104+01:00">
<SessionIdent>cb02b40a-5c5d-43f3-b88f-45a3b32dc321</SessionIdent>
<AnalysisRelevance>true</AnalysisRelevance>
</SessionInfo>
<System>
<SystemVersion>12.09.33.21392</SystemVersion>
<LanguageGui DataVersion="12.09.30">de-DE</LanguageGui>
<LanguageMarket DataVersion="12.09.30">de-DE</LanguageMarket>
<OSVersion>Microsoft Windows NT 6.2.9200.0</OSVersion>
<OSTyp>64 Bit</OSTyp>
</System>
</Header>
<Protocol StartTime="2018-03-02T11:34:50.0963529+01:00" EndTime="2018-03-02T12:27:30.6375104+01:00">
<Event StartTime="2018-03-02T11:34:56.6523167+01:00" LayoutGroup="X">
<WerteAlert UpperThreshold="12.55" ActualLevel="13.44" LowerThreshold="14.85" Severity="Ok" />
</Event>
<TestModule Result="Normal" CollectiveResult="Ok" Source="Whatever" StartTime="2018-03-02T11:35:14.416585+01:00" EndTime="2018-03-02T11:35:15.4271447+01:00" Identifier="EIGENER" WithGUI="false" LayoutGroup="D">
<Title Language="de-DE">Ablauf 1</Title>
<ModuleStep StartTime="2018-03-02T11:35:14.6147091+01:00" EndTime="2018-03-02T11:35:14.6167105+01:00" Title="Vorbereiten" />
<ModuleStep StartTime="2018-03-02T11:35:14.6167105+01:00" EndTime="2018-03-02T11:35:14.6177124+01:00" Title="Starten" />
<ModuleStep StartTime="2018-03-02T11:35:14.6217135+01:00" EndTime="2018-03-02T11:35:14.6217135+01:00" Title="Initialisierung" />
<ModuleStep StartTime="2018-03-02T11:35:14.6237154+01:00" EndTime="2018-03-02T11:35:15.2765198+01:00" Title="Merkmal">
<Action StartTime="2018-03-02T11:35:15.033013+01:00" EndTime="2018-03-02T11:35:15.1617295+01:00" Result="None" LayoutGroup="X">
<Gruppe1>
<Gruppe2>
<NameS>G_IIM</NameS>
<Address>0x63</Address>
</Gruppe2>
</Gruppe1>
</Action>
</ModuleStep>
</TestModule>
</Protocol>
</SessionData>
Mit Zitat antworten