Hi Emmanuel, thx for ur answer, but it is still the same problem. I must be in the right node (correct line), but i do not get the attributes :-(
Regards 2010/1/3 Emmanuel Rodriguez <[email protected]> > > > On Sat, Jan 2, 2010 at 6:39 PM, Andreas Wagner > <[email protected]>wrote: > >> Hi folks, >> >> i have an xml document like this: >> >> <?xml version="1.0" ...?> >> <root xmlns:Value="http://dummies.org"> >> <header> >> <variables> >> <...../> >> <...../> >> </variables> >> <const> >> <.../> >> <.../> >> </const> >> <parameters> >> <param name="xxx"> >> <Value:scalar name="xxx" type="BOOL"/> >> </param> >> <param name="yyy"> >> <Value:scalar name="yyy" type="BOOL"/> >> </param> >> </parameters> >> </header> >> <body> >> </body> >> </root> >> >> I can read the variables and the constants in the header, but when i want >> to read the Value:scalar name and type i get nothing. I read the correct >> lines, but the content is empty (thats normal) but the name of this element >> is "text". >> When the current node is param i try to get the values with: >> >> xmlChar *name; >> cur = cur->xmlChildrenNode; >> if (xmlGetNsProp(cur,(const xmlChar*) "name", (const xmlChar*) "Value"){ >> name = xmlGetNsProp(cur,(const xmlChar*) "name", (const xmlChar*) >> "Value"); >> printf("name: %s \n,name); >> } >> > The second parameter of xmlGetNsProp has to be the URI of the namespace and > not the prefix. Use this instead: > xmlGetNsProp(cur,(const xmlChar*) "name", (const xmlChar*) " > http://dummies.org"); > > Prefixes in namespaces are arbitrary and not always available (i.e. xmlns=" > http://dummies.org" has no prefix yet has a namespace). The only way for > matching nodes within the same namespace is to compare the URI. It can be a > bit confusing sometimes :) > > -- > Emmanuel Rodriguez >
_______________________________________________ xml mailing list, project page http://xmlsoft.org/ [email protected] http://mail.gnome.org/mailman/listinfo/xml
