Altova Mailing List Archives>Archive Index >comp.text.xml Archive Home >Recent entries >Thread Prev - Reading Xpath element [Thread Next] Re: Reading Xpath elementTo: NULL Date: 5/4/2005 12:35:00 PM MarcoT77@g... wrote: > Hi Teacher. > > I'm trying to get with Xpath the Product nodes in the following XML: > <?xml version="1.0" encoding="utf-8"?> > <PLMXML xmlns="http://www.plmxml.org/Schemas/PLMXMLSchema" > schemaVersion="5.1" date="2005-05-03" time="16:41:33" author="TcEng - > infodba@bridge(389284449)"> > <Header id="id1" traverseRootRefs="#id2 #id11" > transferContext="exp_folder"></Header> > <Product id="id10" name="Ace" accessRefs="#id3" subType="Drawing" > productId="000002"> > <ApplicationRef version="QRJJ3Vh1xNEIWA" application="TcEng" > label="QRJJ3Vh1xNEIWA"></ApplicationRef> > <UserData id="id33"> > <UserValue type="reference" value="" title="owning_user" > dataRef="#id11"></UserValue> > <UserValue value="0-01-00T00:00:00" title="date_released"></UserValue> > <UserValue value="2005-05-03T14:00:32" > title="last_mod_date"></UserValue> > <UserValue type="reference" value="" title="last_mod_user" > dataRef="#id11"></UserValue> > <UserValue type="reference" value="" title="owning_group" > dataRef="#id27"></UserValue> > <UserValue value="2005-05-03T10:46:39" > title="creation_date"></UserValue></UserData></Product> (Continue...) > > I've used the /PLMXML/Product query but I can't get anything. with XPath, unprefixed elements refers to elements that are not bound to a namespace URI ; in XML, unprefixed elements may be bound to a namespace URI ; this is the case in the document above, and not the case in the document below thus, /PLMXML gets the PLMXML element with no namespace URI, that doesn't appear anywhere ; to get the PLMXML element bound to this namespace URI "http://www.plmxml.org/Schemas/PLMXMLSchema", you must declare a mapping between a prefix and the namespace URI : plm -> "http://www.plmxml.org/Schemas/PLMXMLSchema" and then use it in your XPath expression : /plm:PLMXML/plm:Product how to declare the mapping vary according to the XPath engine you use, but people usually use it with XSLT ; with XSLT, namespaces declarations are used by the XPath engine > > I've also tried this simple xml: > <?xml version='1.0'?> > <Books> > <Book> > <Title>Beginning XML</Title> > <Publisher>Wrox</Publisher> > </Book> > <Book> > <Title>XML Step by Step</Title> > <Publisher>MSPress</Publisher> > </Book> > <Book> > <Title>Professional XML</Title> > <Publisher>Wrox</Publisher> > </Book> > <Book> > <Title>Developing XML solutions</Title> > <Publisher>MSPress</Publisher> > </Book> > </Books> > > And on this Xml the rule /Books/Book works fine. > > Why does not the first rule work? > Am I missing something? > > Thanks in advance. > Marco. > -- Cordialement, /// (. .) -----ooO--(_)--Ooo----- | Philippe Poulard | ----------------------- | ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
