XML einlesen
Verfasst: 29.04.2012 21:56
Ich möchte gerne eine XML eines Druckers auslesen und haben mir als Grundlage diesen Code als Hilfe genommen http://rosettacode.org/wiki/XML/Input#PureBasic
Ich verstehe nur noch nicht, wie ich zB. von "<JOB_NAME value='Pubebasic.pdf'/>" das Pubebasic.pdf in die "MessageRequester("ACCOUNTING_INFO", JOB_NAME\s)" bekommen und würde mich um hilfe sehr freuen.
Danke
Ich verstehe nur noch nicht, wie ich zB. von "<JOB_NAME value='Pubebasic.pdf'/>" das Pubebasic.pdf in die "MessageRequester("ACCOUNTING_INFO", JOB_NAME\s)" bekommen und würde mich um hilfe sehr freuen.
Danke

Code: Alles auswählen
Define JOB_NAME.String, src$
src$ = "<ACCOUNTING_INFO>"
src$ + "<JOB_NAME value='Pubebasic.pdf'/>"
src$ + "<UUID value='30384F30-3930-3037-4f8d-75db0000006c'/>"
src$ + "<USER_DEFINED value=''/>"
src$ + "<APPLICATION_ID value='PIDHPDRL000'/>"
src$ + "<ACCOUNT_ID value=''/>"
src$ + "<TIMESTAMP value='20120417155422'/>"
src$ + "<PRINTING_TIMESTAMP value='20120417155331'/>"
src$ + "<JOB_STATUS value='0'/>"
src$ + "<USER_NAME value=''/>"
src$ + "<SOURCE value='1'/>"
src$ + "<INK_COVERAGE_CATEGORY value='D'/>"
src$ + "<PRINT_QUALITY value='1'/>"
src$ + "<PRINT_TYPE value='1'/>"
src$ + "<PAGES value='1'/>"
src$ + "<COPIES value='1'/>"
src$ + "<PRINTING_TIME units='secondsx10' value='428'/>"
src$ + "<SCANNED_AREA units='sqi' value=''/>"
src$ + "<MEDIA_INFO>"
src$ + "<NAME vendor-name='' media-name='Plain Paper'/>"
src$ + "<QUANTITY units='sqi' value='96'/>"
src$ + "<SIZE units='inchesx3600'>"
src$ + "<WIDTH value='42112'/>"
src$ + "<LENGTH value='29782'/>"
src$ + "</SIZE><SOURCE value=''/>"
src$ + "</MEDIA_INFO><INK_INFO>"
src$ + "<INK_USED units='microliters' value='249'/>"
src$ + "<CONSUME color='Y' quantity='55' ink-type='non-HP Ink'/>"
src$ + "<CONSUME color='C' quantity='50' ink-type='non-HP Ink'/>"
src$ + "<CONSUME color='mk' quantity='103' ink-type='non-HP Ink'/>"
src$ + "<CONSUME color='dg' quantity='43' ink-type='non-HP Ink'/>"
src$ + "<CONSUME color='M' quantity='42' ink-type='non-HP Ink'/>"
src$ + "<CONSUME color='G' quantity='42' ink-type='non-HP Ink'/>"
src$ + "</INK_INFO>"
src$ + "</ACCOUNTING_INFO>"
Procedure get_values(*cur_node, nodeName$, attribute$, *valueResults.String)
Protected result$
While *cur_node
If XMLNodeType(*cur_node) = #PB_XML_Normal
result$ = GetXMLNodeName(*cur_node)
If result$ = nodeName$
If ExamineXMLAttributes(*cur_node)
While NextXMLAttribute(*cur_node)
If XMLAttributeName(*cur_node) = attribute$
If *valueResults <> #Null
*valueResults\s + XMLAttributeValue(*cur_node) + Chr(13) ;value + carriage-return
EndIf
EndIf
Wend
EndIf
EndIf
EndIf
get_values(ChildXMLNode(*cur_node), nodeName$, attribute$, *valueResults)
*cur_node = NextXMLNode(*cur_node)
Wend
EndProcedure
CatchXML(0,@src$,Len(src$))
If IsXML(0)
get_values(MainXMLNode(0), "ACCOUNTING_INFO", "JOB_NAME",@JOB_NAME)
MessageRequester("ACCOUNTING_INFO", JOB_NAME\s)
FreeXML(0)
EndIf