Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #93288

Re: 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)

From Robert Kern <robert.kern@gmail.com>
Subject Re: 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)
Date 2015-06-29 14:04 +0100
References <14aeae7a-41ab-4619-8331-7995e2420e54@googlegroups.com> <mmivtd$fqa$1@dont-email.me> <mailman.150.1435477605.3674.python-list@python.org> <mmpn9p$667$1@dont-email.me>
Newsgroups comp.lang.python
Message-ID <mailman.162.1435583102.3674.python-list@python.org> (permalink)

Show all headers | View raw


On 2015-06-28 22:00, 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>.

Without reference to a schema that explicitly defines the children of <things> 
to be unordered, this is not true. The XML Information Set defines the children 
of all elements to be an ordered set (in contrast to attributes, which are 
unordered). A particular XML schema may choose to consider the order of children 
of a particular element to be irrelevant, but XML itself keeps them ordered.

http://www.w3.org/TR/xml-infoset/#infoitem.element

If it didn't, then XHTML would have a hell of a time with ordered constructs 
like this:

   <ol>
     <li>First item</li>
     <li>Second item</li>
     <li>Third item</li>
   </ol>

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
  that is made terrible by our own mad attempt to interpret it as though it had
  an underlying truth."
   -- Umberto Eco

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

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) kbtyo <ahlusar.ahluwalia@gmail.com> - 2015-06-25 11:39 -0700
  Re: 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) Denis McMahon <denismfmcmahon@gmail.com> - 2015-06-26 07:44 +0000
    Re: 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) Stefan Behnel <stefan_ml@behnel.de> - 2015-06-28 09:46 +0200
      Re: 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) Denis McMahon <denismfmcmahon@gmail.com> - 2015-06-28 21:00 +0000
        Re: 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@nedbatchelder.com> - 2015-06-28 17:07 -0700
          Re: 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) Denis McMahon <denismfmcmahon@gmail.com> - 2015-06-30 00:54 +0000
            Re: 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) Robert Kern <robert.kern@gmail.com> - 2015-06-30 10:16 +0100
              Re: 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) Marko Rauhamaa <marko@pacujo.net> - 2015-06-30 19:32 +0300
        Re: 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) Robert Kern <robert.kern@gmail.com> - 2015-06-29 14:04 +0100
      Re: 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) Sahlusar <sahluwalia@wynyardgroup.com> - 2015-06-29 07:52 -0700
        Re: 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) Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2015-06-29 21:26 -0400
        Re: 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) Chris Angelico <rosuav@gmail.com> - 2015-06-30 22:40 +1000

csiph-web