You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@xerces.apache.org by Williams Roger <RW...@OLDMUTUAL.com> on 2001/03/23 21:05:01 UTC

NEWBIE:Cannot get to subnodes using getFirstChild and getNextSibl ing

Is there a way of getting pass these type of characters like Tabs,
Linefeeds,etc etc.

It would appear that the getNextSibling() function points to the same
element(most prolly a LineFeed+tab) everytime.

My xmldoc looks like:
<root>
	<properties>
		<propone>aaaa</propone>
		<proptwo>bbbb</proptwo>
	</properties>
	<surname>abcdef</surname>
</documentum_store_details>

code snippet:

bool Fn() { 
	...
	...
	...
	DOMParser Parser;
	Parser.parse(*memBufIS);

	DOM_Document DomDoc = Parser.getDocument();
	int nPropTags=-1,nProps=-1,i=0;
	DOM_NodeList NdLsPropTags =
DomDoc.getElementsByTagName("properties");  
	
	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);
	
	DOM_Node NdProp = NdLsPropTags.item(0); 
	DOMString dsNdNmProp = NdProp.getNodeName();
	char* pszNdNmProp = dsNdNmProp.transcode();
	printf("pszNdNmProp\t%s\n",pszNdNmProp);
	
	if(!NdProp.hasChildNodes()) 
		return true;
	
	DOM_Node Node;
	DOMString dsNdNmNode,dsNdVlNode;
	char *pszNdNmNode,*pszNdVlNode;
	int nNdTpNode=-1;i=0;
	bool flag1=true,flag2=true;
		
	while (flag1 && i<10) {
		if (flag2) {
			Node = NdProp.getFirstChild();
			flag2=false;
		}
		else {
			Node = NdProp.getNextSibling();
		}
		if (Node.isNull()) {
			printf("%d\n",i);
			flag1=false;
		}
		else {	
			nNdTpNode=-1;pszNdNmNode=NULL,pszNdVlNode=NULL;
			nNdTpNode = Node.getNodeType();
			dsNdNmNode = Node.getNodeName();
			if((pszNdNmNode==dsNdNmNode.transcode())==NULL) 
				pszNdNmNode="NULL";
			dsNdVlNode = Node.getNodeValue();
			if((pszNdVlNode==dsNdVlNode.transcode())==NULL) 
				pszNdVlNode="NULL";	
	
printf("%d\t%d\t%s\t%s\n",i,nNdTpNode,pszNdNmNode,pszNdVlNode);
		}
		i++;
	}
	printf("\ni\t%d\n",i);	
	return false;
}

-----Original Message-----
From: David E. Cleary [mailto:davec@progress.com]
Sent: 23 March 2001 8:12 PM
To: xerces-c-dev@xml.apache.org
Subject: RE: NEWBIE:Cannot get to subnode using getFirstChild


> I need help
>
> I am trying to walk through all the ChildNodes in a Node.
> I can get to the ParentNode(properties) by using getElementsByTag, but i
> can't seem to get a Node representation of the first child(propone) of the
> ParantNode(properties).
>
> My XML Document looks like:
> <?xml version='1.0' encoding='ascii'?>
> <root>
> 	<surname>abcdef</surname>
> 	<properties>
> 		<propone>aaaa</propone>
> 		<proptwo>bbbb</proptwo>
> 	</properties>
> </root>

The first child is a text node that contains an LF and space or tab
characters. The second child is propone.

> Problem two
> How do I get a list of all the nodes which are only one level under a
> parentnode? If I do a ParentNode.getChildNodes, I get all the Nodes
> including the ones which lies deeper than the nodes directly under the
> parentnode.

No you don't. You get just the children of that node, which include text
nodes as well as element nodes.

Dave


---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-c-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-c-dev-help@xml.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-c-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-c-dev-help@xml.apache.org