| Autor |
Nachricht |
kacker77
Threadersteller
Dabei seit: 23.05.2005
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mo 23.05.2005 17:49
Titel xml parsen....komme an ein attribut nicht dran |
 |
|
hi an alle, bin neu hier und habe gleich mein erstes grosses problem zu berichten. hab bereits die suchfunktion ausprobiert aber nichts passendes gefunden für mein problem. also, jetzt zu meinem riessigen problem. ich bekomme von einer anwendung ein fertiges xml dokument welches ich parse (expat - php). klappt wunderbar... jedoch interesiert mich bei diesem xml dokument nicht alle knoten, nein, sondern nur ein ganz besonderer. hier mal die xml datei: | Code: | <?xml version="1.0" encoding="UTF-8" ?>
- <E_Lesson>
- <Lesson_Unit title="meine erste lesson" description="bla bla bla blabla" date="05/20/2005" author="tom">
- <learningObject id="2" seqNumber="0">
<title>test Lesson 2</title>
<comments>no comments</comments>
</learningObject>
- <learningObject id="32" seqNumber="0">
<title>test Lesson 32</title>
<comments>scheiss comments</comments>
</learningObject>
</Lesson_Unit>
</E_Lesson> |
wie ich an die tags innerhalb <Lesson_Unit> komme, weiss ich....aber....jetzt kommts...wie komme ich an den tag <Lesson_Unit> selbst ran????? das ist mein grosses problem.
wie ihr seht hat dieser tag einige daten (title, description, date, author). diese character brauche ich. der rest interessiert nicht. weiss jemand wie ich da dran komme, verzweifel schon.
hier mal das wichtigste meines php skripts | Code: |
$file = "output_1.xml";
$result = array();
$currRow = 0;
function startElement($parser, $name, $attrs)
{
global $currTag, $currRow;
$currTag = $name;
}
function endElement($parser, $name) {
global $currRow;
if ($name == "LESSON_UNIT")
$currRow++;
}
function characterData($parser, $tagData) {
global $result, $currRow, $currTag;
$tagData = trim($tagData);
if ($tagData != '')
$result[$currRow][$currTag] = $tagData;
}
...
echo "<xmp>";
var_dump($result[0][AUTHOR]);
echo "</xmp>"; |
danke im voraus bye bye kacker.
|
|
| |
|
 |
| |
|
 |
XSchinkenX
Dabei seit: 25.01.2004
Ort: Mars
Alter: -
Geschlecht: -
|
Verfasst Mo 23.05.2005 18:41
Titel
|
 |
|
|
Die Attribute des Elements werden bei dir im Array $attrs gespeichert. Hast du nichts anderes eingestellt, werden die Namen - also die Schlüssel des Arrays - ebenfalls wie Elementnamen in Großbuchstaben umgewandelt.
|
|
| |
|
 |
kacker77
Threadersteller
Dabei seit: 23.05.2005
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mo 23.05.2005 19:44
Titel
|
 |
|
hi schnitzel, danke für deine antwort. das war richtig die $attrs beinhaltet die elemente die ich brauche...aber sag mal....heisst das denn noch parsen was ich mache. ich meine da sind dann funktionen dabei die ich gar nicht mehr brauche...wie würdest du das machen wenn du, wie jetzt, nur die elemente der $attrs brauchst???
danke für deine schnelle antwort
bye kacker
|
|
| |
|
 |
XSchinkenX
Dabei seit: 25.01.2004
Ort: Mars
Alter: -
Geschlecht: -
|
Verfasst Mo 23.05.2005 20:46
Titel
|
 |
|
da kannste relativ schnell mit nem xpath-ausdruck rankommen.
| Code: |
<?
$dom = new DOMDocument;
$dom->load("test.xml");
$xpath = new DOMXPath($dom);
$atts = $xpath->query("/E_Lesson/Lesson_Unit/attribute::*");
foreach ($atts AS $a) {
echo ($a->nodeName);
echo ": ";
echo ($a->nodeValue);
echo "<br />";
}
?>
|
|
|
| |
|
 |
| |
|
 |
| Ähnliche Themen |
xml laden und parsen in *.as
XML mit Javascript parsen
Hilfe beim Parsen einer XML
[PHP]Problem bei Parsen vom XML-Daten
XML in PHP einlesen (parsen) und Inhalte ausgeben.
[Flash 8] XML Menu - bestimmtes attribut auslesen
|
 |