I just want to know why the code I submitted with the first e-mail won't
work. I have seen the DOMPrint sample. I don't want to Print anything, Just
want to access the subnodes(all of them, not just the first one).
My question was , why does the getNextSibling not work in the following
code.
xmldoc(I took out all unnec spaces) looks like:
<root><properties><propone></propone><proptwo></proptwo></properties></root>
simplified code:
DOMParser Parser;
Parser.parse(*memBufIS); //option1:use membuf
//Parser.parse("c:/myxml.xml"); //option2:use file
Parser.setDoNamespaces(true);
DOM_Document DomDoc = Parser.getDocument();
DOM_NodeList NdLsPropTags =
DomDoc.getElementsByTagName("properties");
int nPropTags;
if ((nPropTags = NdLsPropTags.getLength())!=1) {
if (nPropTags==0) {
printf("No properties tag");
}
else {
printf("More than one properties tag");
}
return false;
}
printf("\nPropTags\t%d\n",nPropTags);
DOMString dsNdNmProp,dsNdVlProp,dsNdNmNode,dsNdVlNode;
char
*pszNdNmProp=NULL,*pszNdVlProp=NULL,*pszNdNmNode=NULL,*pszNdVlNode=NULL;
int nNdTpProp,nNdTpNode,i=0;
DOM_Node NdProp = NdLsPropTags.item(0);
nNdTpProp=NdProp.getNodeType();
dsNdNmProp=NdProp.getNodeName();
pszNdNmProp = dsNdNmProp.transcode();
dsNdVlProp = NdProp.getNodeValue();
if (pszNdVlProp==NULL)
pszNdVlProp="NULL";
printf("\n\t%d\t%s\t%s\n",nNdTpProp,pszNdNmProp,pszNdVlProp);
if (!NdProp.hasChildNodes())
return false;
DOM_Node NdNode;
NdNode = NdProp.getFirstChild();
if (NdNode.isNull())
return true;
nNdTpNode = NdNode.getNodeType();
dsNdNmNode=NdNode.getNodeName();
pszNdNmNode = dsNdNmNode.transcode();
dsNdVlNode=NdNode.getNodeValue();
pszNdVlNode = dsNdVlNode.transcode();
if (pszNdVlNode==NULL)
pszNdVlNode="NULL";
printf("\n%d\t%d\t%s\t\t<%s>\n",i,nNdTpNode,pszNdNmNode,pszNdVlNode);
i++;
NdNode = NdProp.getNextSibling();
if (NdNode.isNull()) //turns out to be true
return true; //ie no next sibling, cannot get
proptwo
nNdTpNode = NdNode.getNodeType();
dsNdNmNode=NdNode.getNodeName();
pszNdNmNode = dsNdNmNode.transcode();
dsNdVlNode=NdNode.getNodeValue();
pszNdVlNode = dsNdVlNode.transcode();
if (pszNdVlNode==NULL)
pszNdVlNode="NULL";
printf("\n%d\t%d\t%s\t\t<%s>\n",i,nNdTpNode,pszNdNmNode,pszNdVlNode);
i++;
NdNode = NdProp.getNextSibling();
if (NdNode.isNull())
return true;
nNdTpNode = NdNode.getNodeType();
dsNdNmNode=NdNode.getNodeName();
pszNdNmNode = dsNdNmNode.transcode();
dsNdVlNode=NdNode.getNodeValue();
pszNdVlNode = dsNdVlNode.transcode();
if (pszNdVlNode==NULL)
pszNdVlNode="NULL";
printf("\n%d\t%d\t%s\t\t<%s>\n",i,nNdTpNode,pszNdNmNode,pszNdVlNode);
-----Original Message-----
From: Gareth Reakes [mailto:[EMAIL PROTECTED]]
Sent: 24 March 2001 1:07 PM
To: '[EMAIL PROTECTED]'
Subject: Re: NEWBIE: getNextSibling Still not working
Sorry I meant the DOMPrint example not DOMSerialise.
Gareth Reakes, Lead Software Engineer
DecisionSoft Ltd. http://www.decisionsoft.com
Office: +44 (0) 1865 203192
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]