Thank you again for all your answers. I hope you are not fed up with me yet..haha.
Now I want to obtain an int (c++) in order to process all the children of the root node in the DOM representation, so: DOMNodeList *child_contents = root.getChildNodes(); With child_contents.getLength() I have a XMLSize_t value as a result. How can I parse it to a int? Thank you a lot again, Javi 2007/11/27, Jesse Pelton <[EMAIL PROTECTED]>: > > http://xerces.apache.org/xerces-c/apiDocs/functions_0x67.html provides a > list of methods implemented by Xerces-C; if you look at it, you'll find > getDocument() is a method of AbstractDOMParser. Click the method name and > you'll find a brief description, including the fact that it returns a > DOMDocument pointer. Click DOMDocument and you'll find that it has a > getDocumentElement() method "that allows direct access to the child node > that is the root element of the document." Given this node, you can use > getChildNodes(), getFirstChild(), getNextSibling(), and so on to directly > navigate the DOM. > > Alternately, you can use getElementsByTagName() to obtain a list of > elements with a given name or getElementById() to get an element with a > unique ID. Or use DOMTreeWalker to work with a subset of your > document. I've never done that, so it's left as an exercise for the > student. > > -----Original Message----- > From: Javier Gálvez Guerrero [mailto:[EMAIL PROTECTED] > Sent: Tuesday, November 27, 2007 10:46 AM > To: [email protected] > Subject: Re: How to parse using DOM > > Thank you all very much, specially to Sven who shared his own effort. > > However, I have looked into the samples on the repositories site and I > can't > find how to "extract" the data itself from the DOM tree. If you don't mind > I > would like to make some simple questions so with your answers I hope I > could > start typing code. > > //get the DOM representation > DOMNode *doc = parser->getDocument(); > > I can not find the getDocument method description in the provided > documentation and I am quite confused about it. Anyway, *doc is supposed > to > be the DOM representation. So, what I need to do is to extract many > elements > (with their childs and attributes) from a XML file, which is supposed to > be > represented by *doc once it has been parsed and got. Then, how can I > assign, > let's say, the value of the "nickname" element inside its parent element > "user"? getDocument returns the root node? So I guess I can ask it for its > children and then "move" through the tree with methods of the DOMNode API, > like for example, getNodeValue(), getChildNodes() and so on. > > Is it ok? Does it exist any other way to extract data from the DOM > representation or this is the one about to use? > > Thank you all very much again and sorry for the inconvenience. I am really > interested in using Xerces in the application I am developing, so that's > whay I would like to know how to use it properly. > > Cheers, > Javi > > ** > > > > 2007/11/27, David Bertoni <[EMAIL PROTECTED]>: > > > > Sven Bauhan wrote: > > > Hi Javi, > > > > > > the Xerces interface is not really intuitively. A short description > can > > be > > > found at the DOM programming giude: > > > http://xerces.apache.org/xerces-c/program.html > > > > > > In the Xerces documentation it is often described to use an extra > class > > for > > > the conversion of std::string and XMLChar*. I have written such a > class. > > As > > > it is quite short, I attach it here. > > Your class uses XMLString::transcode(), which transcodes to the local > code > > page. This will result in data loss in cases where content contains > > Unicode characters that are not representable in the local code page. A > > better choice would be to transcode to UTF-8, which is compatible with > > char* APIs, and has the advantage that it can represent any Unicode > > character. > > > > There are many postings in the archives that will illustrate why using > > XMLString::transcode() is a bad idea. I wish we would actually modify > the > > analogous class in our samples so it doesn't do local code page > > transcoding, as it's providing a bad example. > > > > Dave > > >
