Re: XML einlesen
Verfasst: 30.04.2012 15:46
OK das habe ich nur zum Teil verstanden, das die Knoten entscheidend sind, ist mir klar, aber warum werde mir die Daten nun nicht angezeigt?
ich füge mal einen Datensatz aus der XML hinzu, die ich nun als XML-Files einlesen will. Die XML Daten stehen alle in einer Zeile, was ich mal hier geändert habe, damit es besser zu lesen ist:
Nun wollte ich die Daten auslesen, normalerweise sind es mehr im Accountingbereich, aber ich dachte einer Datensatz reicht zum Test aus:
Ich bin Anfänger und bitte euch um etwas Verständnis, das XML-Thema ist sicher nicht gerade der leichtest Teil in purebasic und dazu kommt noch, dass die Daten misst sind, denke ich.
ich füge mal einen Datensatz aus der XML hinzu, die ich nun als XML-Files einlesen will. Die XML Daten stehen alle in einer Zeile, was ich mal hier geändert habe, damit es besser zu lesen ist:
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8"?>
<Serviceability version="1.3">
<Current_Printer_Configuration>
<Product_Number>CQ109A</Product_Number>
<Serial_Number>MY0A9010</Serial_Number>
<Product_Name>HP Designjet Z620</Product_Name>
<FW_Version>KHN_01_00_09.5</FW_Version>
</Current_Printer_Configuration>
<JOBS_ACCOUNTING_INFO>
<ACCOUNTING_INFO>
<JOB_NAME value="2012-Flyer-RS.pdf"/>
<UUID value="e72483c3-808e-4551-acb4-ed7169f1cb84"/>
<USER_DEFINED value=""/>
<APPLICATION_ID value=""/>
<ACCOUNT_ID value=""/>
<TIMESTAMP value="20120322082426"/>
<PRINTING_TIMESTAMP value="20120322083224"/>
<JOB_STATUS value="0"/>
<USER_NAME value="hormann"/>
<SOURCE value="1"/>
<INK_COVERAGE_CATEGORY value="D"/>
<PRINT_QUALITY value="3"/>
<PRINT_TYPE value="0"/>
<PAGES value="2"/>
<COPIES value="1"/>
<PRINTING_TIME value="3178" units="secondsx10"/>
<SCANNED_AREA value="" units="sqi"/>
<MEDIA_INFO><NAME media-name="HP Premium Fotopapier seidenmatt schnell trocknend" vendor-name=""/>
<QUANTITY value="398" units="sqi"/>
<SIZE units="inchesx3600">
<WIDTH value="59538"/>
<LENGTH value="42102"/>
</SIZE><SOURCE value=""/>
</MEDIA_INFO>-<INK_INFO>
<INK_USED value="3" units="microliters"/>
<CONSUME ink-type="non-HP Ink" quantity="684" color="lm"/>
<CONSUME ink-type="non-HP Ink" quantity="662" color="pk"/>
<CONSUME ink-type="non-HP Ink" quantity="926" color="mk"/>
<CONSUME ink-type="non-HP Ink" quantity="674" color="lc"/>
<CONSUME ink-type="non-HP Ink" quantity="810" color="lg"/>
<CONSUME ink-type="non-HP Ink" quantity="1028" color="R"/>
<CONSUME ink-type="non-HP Ink" quantity="1116" color="M"/>
<CONSUME ink-type="non-HP Ink" quantity="1030" color="Y"/>
</INK_INFO>
</ACCOUNTING_INFO>
</JOBS_ACCOUNTING_INFO>
</Serviceability>
Code: Alles auswählen
Define Example.XML
If ImportXML(@Example, "i:\test.xml")
Debug Example\Main\Text; wie kann ich nun die "<FW_Version>KHN_01_00_09.5</FW_Version>" hier auslesen? Das habe ich noch nicht verstanden :-(
Debug ":: Namen auflisten"
ForEach Example\Main\Node("JOB_NAME")\Attributes()
Debug Example\Main\Node("JOB_NAME")\Attribute("value")\String; und hier ist die Ausgabe leer, warum verstehe ich nur nicht...
Next
EndIf