Consultor Eletrônico



Kbase P32544: How to display the text content of an XML element?
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   9/3/2008
Status: Unverified

GOAL:

How to display the text content of an XML element?

FACT(s) (Environment):

Progress 9.x
OpenEdge 10.x
All Supported Operating Systems

FIX:

<PRE>
/*** The following code walks the XML document tree and messages the number ***/
/*** NAME, TYPE, SUBTYPE and the NODE-VALUE of the text child of all nonempty**/
/*** elements in a given XML document. ***/

DEFINE VARIABLE hDocument AS HANDLE.
DEFINE VARIABLE hRoot AS HANDLE.
DEFINE VARIABLE hChild AS HANDLE NO-UNDO.
DEFINE VARIABLE hText AS HANDLE.

DEFINE VARIABLE iCounter AS INTEGER NO-UNDO.

CREATE X-DOCUMENT hDocument.
CREATE X-NODEREF hRoot.
CREATE X-NODEREF hChild.
CREATE X-NODEREF hText.

hDocument:LOAD("FILE","ThreeChildNode.xml",FALSE).
hDocument:GET-DOCUMENT-ELEMENT(hRoot).

REPEAT iCounter = 1 TO hRoot:NUM-CHILDREN:
hRoot:GET-CHILD(hChild,iCounter).
IF hChild:SUBTYPE <> 'ELEMENT' OR hChild:NUM-CHILDREN = 0 THEN
NEXT.
hChild:GET-CHILD(hText,1).
MESSAGE
"Child Number ~t" iCounter "~n"
"Child Name ~t" hChild:NAME "~n"
"Child Subtype ~t" hChild:SUBTYPE "~n"
"Child NodeValue ~t" hText:NODE-VALUE "~n"
VIEW-AS ALERT-BOX INFO BUTTONS OK.
END.
</PRE>