Treatment of XML files
1. Take the value of the node
1) At the same level
a. Circulation traversal
Private string processxpathQuery (xpathnavigator xpnav, string xpathquery)
{
String strreturn = ""
Xpnav.movetofirstchild ();
DO
{
IF (xpnav.localname == xpathquery)
{
Strreturn = xpnav.value.toString (). Trim ();
Break;
}
} while (xpnav.movetonext ());
Xpnav.movetoparent ();
Return Strreturn;
}
String strreturn = processxpathQuery (xpnav, "userid");
b. Check with xpathnodeiterator.select
Private string processxpathQuery (xpathnavigator xpnav, string xpathquery)
{
// xpath reason: http://www.zvon.org/xxl/xpathtutorial/general/examples.html
// USING TECHNIQUE BELOW, One CAN Itereate Through the set of nodes
// Associated with a given xpath query and process the accountingly.
XpathnodeEiterator xpn = xpnav.select (xpathquery);
IF (xpn.movenext ())
Return xpn.current.value;
Else
Return string.empty;
}
String strreturn = processxpathQuery (xpnav, "descendant :: userid);
2) Different levels
a. Cycle is returned
Private Void ProcessRequestXML (Xpathnavigator Xpnav, Int Level)
{
Xpnav.movetofirstchild ();
DO
{
Switch (xpnav.localname)
{
Case "Userid":
MyReq.userid = xpnav.value.toString (). Trim ();
Break;
Case "Password":
Myreq.password = xpnav.value.toString (). Trim ();
Break;
Case "Flightnumber":
IF (Level == 0)
Myreq.flightnumber = xpnav.value.tostring (). TRIM ();
Else IF (level == 4)
Myflight.flightnumber = xpnav.value.toString (). Trim ();
Break;
Case "RESERVATION":
ProcessRequestXML (XPNAV, Level 1);
Xpnav.movetoparent ();
Break;
// RESERVATION CHILD NODES
Case "OrderID":
MyRESERVATION.Orderid = xpnav.value.toString (). Trim ();
Break;
DEFAULT:
Break;
}
} while (xpnav.movetonext ());
ProcessRequestXML (XPNAV, 0);
2. Turn string to XML document type
StringReader SR = New StringReader (MyXML);
XpathDocument XP = New XpathDocument (SR);
Xpathnavigator xpnav = xp.createnavigator ();
Xpnav.movetofirstchild ();
3. Turn the XML document type to string
Public String Responsexml (String Node, String Message)
{
StringBuilder SB = New StringBuilder ();
StringWriter SW = New StringWriter (SB);
XMLTextWriter XW = New XMLTextWriter (SW);
Xw.formatting = formatting.indented;
Xw.writestartDocument ();
xw.writestartElement ("ErrorMessage");
xw.writeElementsTRING ("Node", Node);
Xw.writeElementsTRING ("Message", Message;
Xw.writeEndelement ();
Xw.writeEndDocument ();
String sxmlresponse = sb.tostring ();
Return SxmlResponse;
}