Sorry, that pseudocode makes little sense to me.

suppose you have an XML document with nodes in a given namespace
e.g

<a xmlns="http://foo/bar";>
  <b/>
</a>

if you want to be able to select the b element in that document
"//b" wont work you need to define a namespace prefix in your
XPath context (whatever it is) and then prepare the xpath query
using that context. Example with xmllint shell command:

thinkpad:~/XML -> cat tst.xml
<a xmlns="http://foo/bar";>
  <b/>
</a>
thinkpad:~/XML -> xmllint --shell tst.xml
/ > setns foobar=http://foo/bar
/ > xpath //b
Object is a Node Set :
Set contains 0 nodes:
/ > xpath //foobar:b
Object is a Node Set :
Set contains 1 nodes:
1  ELEMENT b
/ > 

it would be exactly the same if your document used an explicit namespace
instead of a default name, even if the prefix is different e.g

<fb:a xmlns:fb="http://foo/bar";>
  <fb:b/>
</fb:a>

  Hope this helps,

Daniel

On Tue, Feb 10, 2015 at 11:56:40AM -0500, Alex Boese wrote:
> I'm thinking it should look something like this, assuming Python language:
> 
> Import xmlsec
> Import libxml2
> 
> ...
> 
>     def test_get_xml_fragment(self,xpath,ns):
>          ret = None
>          context = self.doc.xpathNewContext()
>          if ns is None:
> 
> context.xpathRegisterNs(ns,'http://127.0.0.1/#no_place_like_home')
>          res = context.xpathEval(xpath)
>          i = 0
>          for node in res:
>               print i,':',node
>               i = i + 1
> 
> 
> Please note there is an object in the mix, and I can get the whole to work 
> great without namespaces. One good example of how Python should be handling 
> namespaces in this case would be great. Even telling me it's forever 
> broken...this too would be good to know. (Also, this is not an ideal 
> example...I get this. I want something that hobbles before I get something 
> hat soars.)
> 
> Thanks in advance.
> 
> Sent from my Planet
> > 
> > Message: 2
> > Date: Fri, 30 Jan 2015 09:03:40 -0600
> > From: Ross Reedstrom <reeds...@rice.edu>
> > To: xml@gnome.org
> > Subject: Re: [xml] Xpath issues with libxml2
> > Message-ID: <20150130150340.ga28...@rice.edu>
> > Content-Type: text/plain; charset=us-ascii
> > 
> > Alex -
> > With out examples of what you've tried, it's hard to diagnose the problem.
> > However, seeing 'namespaces' and 'never returns anything' makes me think 
> > you're
> > having issues with the default namespace concept. While XML documents have a
> > default namespace, XPaths do not. Once you use namespaces in an xml 
> > document,
> > all your xpaths will need to use namespace declarations for all the path 
> > parts,
> > even for tags that are defaulted in the document. So, you'll need to declare
> > a namespace prefix that matches the default namespace in the doc. Give us
> > a small example that you've tried that doesn't work, we'll fix it.
> > 
> > Ross
> > 
> >> On Fri, Jan 30, 2015 at 08:44:15AM -0500, Alex Boese wrote:
> >> Forgive me if this is a deprecated approach (as I am not fully aware), but 
> >> I was utilizing "default" libxml2 bindings (not lxml) in Python to 
> >> retrieve xml fragments via xpath functions. Normally this seems to work 
> >> fine, but with namespace declarations this seems especially problematic as 
> >> nothing ever returns and nothing errors. Would it be possible to confirm 
> >> what correct functions and order of operations would be for this? Even if 
> >> the example is C, I can translate that to Python.
> > 
> > -- 
> > Ross Reedstrom, Ph.D.                                 reeds...@rice.edu
> > Systems Engineer & Admin, Research Scientist        phone: 713-348-6166
> > Connexions                  http://cnx.org            fax: 713-348-3665
> > Rice University MS-375, Houston, TX 77005
> > GPG Key fingerprint = F023 82C8 9B0E 2CC6 0D8E  F888 D3AE 810E 88F0 BEDE
> > 
> > 
> > ------------------------------
> > 
> > Subject: Digest Footer
> > 
> > _______________________________________________
> > xml mailing list
> > xml@gnome.org
> > https://mail.gnome.org/mailman/listinfo/xml
> > 
> > 
> > ------------------------------
> > 
> > End of xml Digest, Vol 128, Issue 2
> > ***********************************

> _______________________________________________
> xml mailing list, project page  http://xmlsoft.org/
> xml@gnome.org
> https://mail.gnome.org/mailman/listinfo/xml


-- 
Daniel Veillard      | Open Source and Standards, Red Hat
veill...@redhat.com  | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | virtualization library  http://libvirt.org/
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
xml@gnome.org
https://mail.gnome.org/mailman/listinfo/xml

Reply via email to