Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.php > #14214
| From | Denis McMahon <denismfmcmahon@gmail.com> |
|---|---|
| Newsgroups | comp.lang.php |
| Subject | Re: Extracting values from xml file using php/xpath/namespace/simplexml/ |
| Date | 2014-09-05 02:50 +0000 |
| Organization | A noiseless patient Spider |
| Message-ID | <lub8dn$glf$2@dont-email.me> (permalink) |
| References | (7 earlier) <35250817.Fx3NucNZ4e@PointedEars.de> <lu8ao0$ha6$1@dont-email.me> <2974602.zgg0cvazeg@PointedEars.de> <lub0uq$8cj$1@dont-email.me> <lub5tu$k7f$3@solani.org> |
On Fri, 05 Sep 2014 04:08:09 +0200, Christoph M. Becker wrote: > Jerry Stuckle wrote: > >> On 9/4/2014 5:21 PM, Thomas 'Pointed Head' Lahn wrote: >>> Jerry Stuckle wrote: > >> His code will detect the change in the markup. Yours will not, because >> you are not using the full XPath. And once again - yours can fail if >> the XML happens to have multiple (but different) XPaths with the same >> identifiers. The Ops will not. > > "Mutitple (but different) XPaths"? Do you mean multiple (but different) > XPath expressions? No Jerry is trying to point out to tpel-troll that if you use a partial xpath instead of a fully qualified xpath to match data in an xml document, there is a risk that if the same partial xpath matches one or more unwanted elements as well as the wanted element(s), the unwanted element (s) will end up as part of the selection. Hence, Jerry is suggesting that it is better from the start to use the fully qualified xpath and namespace, because in Jerry's opinion (whether you agree with it or not) having an obvious error or empty dataset is better than having a dataset that contains incorrect data. You may or may not agree with Jerry on that last point, I happen to think he's got a very valid point - that it's better to know something's gone wrong with the selection process than to end up with an invalid dataset and blithely carry on processing it as if it was valid. As an example, if you were closing out unclaimed bank accounts of deceased people and giving the money to the state, it would be bad to accidentally select some accounts of non-deceased people because someone changed the xml source data and your code didn't handle the change. >>>> That is generally NOT the case in XML - which is why each element has >>>> an identity as well as a value. >>> >>> Nonsense. >>> >> Now I KNOW you don't have any idea how XML works! > > You have claimed that "each XML element has a value", what is utter > nonsense. Be careful that you don't get caught out on the meanings of words as used by other people. In my understanding, every xml element has a value, that value being the content of the element, which may be null. For example, in the document: <? xml version="1.0" encoding="utf-8" standalone="yes" ?> <things> <thing /> <thing> <type>instrument</type> <name>kettle drum</name> </thing> <thing> <type>instrument</type> <name>trombone</name> <owner> <id>x5432</id> </owner> </thing> <thing> <type>vehicle</type> <name>car</name> <owner> <id>x5432</id> </owner> </thing> </things> The value of the first "thing" is null >> You haven't seen the entire code. They can easily detect if XPath >> changes, as I indicated above. > > "XPath changes"? I think Jerry meant if the xml changes. For example, If I change the previous document to add an id element for instruments and a name element for owners, then there might be a problem with xpath that just selected name or id elements without fully qualifying them such that all names would now contain people names as well as instrument names, and all ids would now include instrument ids as well as people ids. A fully qualified selector looking for instrument owner ids would only select ids that were a child of owner that was a child of instrument, rather than any id, just as a fully qualify qualified instrument name selector would only select a name that was a child of an instrument item, rather than selecting any name (including, perhaps, the names of vehicles). eg consider "//name" vs "//instrument//name" vs "/things/thing/instrument/ name" as xpath applied to the above document. Then consider what happens in each case if the upstream generator changes the document and a 'name' child element is added to the 'owner' elements. >> As I indicated before - different XPaths, but same identity. Once >> again you have proven you know nothing about XML. > > "Different XPaths"? Again, I think Jerry is referring to the potential for an upstream change in the xml leading to cases where the xpath, if not fully qualified, might return an incorrect dataset. And I still think his basic premise is right, especially as I often work with xml datasets whose generation is wholly outside of my control. If the upstream changes the dataset, I'd prefer my application to fail gracefully having detected that the dataset has changed rather than soldier blithely on and possibly generate incorrect results as a result of my xpath selectors pulling out an incorrect selection. -- Denis McMahon, denismfmcmahon@gmail.com
Back to comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Extracting values from xml file using php/xpath/namespace/simplexml/ ofuuzo@gmail.com - 2014-08-13 04:02 -0700
Re: Extracting values from xml file using php/xpath/namespace/simplexml/ Jerry Stuckle <jstucklex@attglobal.net> - 2014-08-13 09:25 -0400
Re: Extracting values from xml file using php/xpath/namespace/simplexml/ ofuuzo@gmail.com - 2014-08-14 03:29 -0700
Re: Extracting values from xml file using php/xpath/namespace/simplexml/ Jerry Stuckle <jstucklex@attglobal.net> - 2014-08-14 10:06 -0400
Re: Extracting values from xml file using php/xpath/namespace/simplexml/ Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-08-17 19:43 +0200
Re: Extracting values from xml file using php/xpath/namespace/simplexml/ Jerry Stuckle <jstucklex@attglobal.net> - 2014-08-17 15:21 -0400
Re: Extracting values from xml file using php/xpath/namespace/simplexml/ Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-08-17 23:41 +0200
Re: Extracting values from xml file using php/xpath/namespace/simplexml/ Jerry Stuckle <jstucklex@attglobal.net> - 2014-08-17 18:57 -0400
Re: Extracting values from xml file using php/xpath/namespace/simplexml/ Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-09-03 23:10 +0200
Re: Extracting values from xml file using php/xpath/namespace/simplexml/ Jerry Stuckle <jstucklex@attglobal.net> - 2014-09-03 20:11 -0400
Re: Extracting values from xml file using php/xpath/namespace/simplexml/ "Christoph M. Becker" <cmbecker69@arcor.de> - 2014-09-04 02:42 +0200
Re: Extracting values from xml file using php/xpath/namespace/simplexml/ Jerry Stuckle <jstucklex@attglobal.net> - 2014-09-03 21:57 -0400
Re: Extracting values from xml file using php/xpath/namespace/simplexml/ Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-09-04 23:21 +0200
Re: Extracting values from xml file using php/xpath/namespace/simplexml/ Jerry Stuckle <jstucklex@attglobal.net> - 2014-09-04 20:43 -0400
Re: Extracting values from xml file using php/xpath/namespace/simplexml/ "Christoph M. Becker" <cmbecker69@arcor.de> - 2014-09-05 04:08 +0200
Re: Extracting values from xml file using php/xpath/namespace/simplexml/ Denis McMahon <denismfmcmahon@gmail.com> - 2014-09-05 02:50 +0000
Re: Extracting values from xml file using php/xpath/namespace/simplexml/ Jerry Stuckle <jstucklex@attglobal.net> - 2014-09-05 08:24 -0400
Re: Extracting values from xml file using php/xpath/namespace/simplexml/ Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-09-07 11:57 +0200
Re: Extracting values from xml file using php/xpath/namespace/simplexml/ Jerry Stuckle <jstucklex@attglobal.net> - 2014-09-07 09:54 -0400
Re: Extracting values from xml file using php/xpath/namespace/simplexml/ "M. Strobel" <sorry_no_mail_here@nowhere.dee> - 2014-09-07 23:53 +0200
csiph-web