enumerate XML tags (keys that will become headers) along with text (values) and write to CSV in one row (as opposed to "stacked" values with one header)

Ned Batchelder ned at nedbatchelder.com
Sun Jun 28 20:07:00 EDT 2015


On Sunday, June 28, 2015 at 5:02:19 PM UTC-4, Denis McMahon wrote:
> On Sun, 28 Jun 2015 09:46:36 +0200, Stefan Behnel wrote:
> 
> > Denis McMahon schrieb am 26.06.2015 um 09:44:
> >> xml data is an unordered list, and are trying to assign an order to it.
> >> 
> >> If the xml data was ordered, either each tag would be different, or
> >> each tag would have an attribute specifying a sequence number.
> > 
> > XML is not unordered. The document order is well defined and entirely
> > obvious from the data. Whether this order is relevant and has a meaning
> > or not is, however, not part of XML itself but is left to the semantics
> > of the specific document format at hand. Meaning, XML document formats
> > can choose to ignore that order and define it as irrelevant. That
> > doesn't mean it's not there for a given document, but it may mean that a
> > re-transmission of the same document would be allowed to use a different
> > order without changing the information.
> > 
> > This property applies to pretty much all structured data formats and not
> > just XML, by the way, also to CSV and other tabular formats.
> 
> The point I am trying to make to OP is that the following two XML 
> fragments define the same data:
> 
> <things>
>   <thing>string 1</thing>
>   <thing>string 2</thing>
>   <thing>string 3</thing>
> </things>
> 
> and:
> 
> <things>
>   <thing>string 3</thing>
>   <thing>string 2</thing>
>   <thing>string 1</thing>
> </things>
> 
> Each <thing> is just a member of the collection things, the xml does not 
> contain sufficient information to state that <things> is an ordered 
> collection containing a specific sequence of <thing>.

You are right that XML does not specify that <things> is an ordered collection.
But XML does preserve the order of the children.  There are many XML schema
that rely on XML's order-preserving nature.

> 
> Mechanisms such as node.firstChild and node.getChild(x) are all very well 
> for manipulating the xml, but any specific ordering of the original data 
> should be carried out by using an appropriate attribute of the ordered 
> data elements at the point where the xml representation is created.
> 
> -- 
> Denis McMahon, denismfmcmahon at gmail.com




More information about the Python-list mailing list