- From: Uche Ogbuji <uche@o...>
- To: xml-dev@l...
- Date: Wed, 2 Feb 2011 15:34:07 -0700
There was more after the part you quoted. I chose not to ignore that. Sounds like Simon has a ton of options now, and can help himself, so all is well.
FWIW I do genuinely think it would be a useful service to see what it would look like in xmlsh with the attributes listing and path to element.
--Uche
On Wed, Feb 2, 2011 at 3:29 PM, David Lee <dlee@c...> wrote:
Original Requirements:
I'm looking for a tool that I can feed an XML document, and it will tell me which element names were used in the document. Id say the 1-liner does htat
----------------------------------------
David A. Lee dlee@c...
http://www.xmlsh.org
From: Uche Ogbuji [mailto:uche@o...] Sent: Wednesday, February 02, 2011 5:27 PM
To: David Lee Cc: xml-dev@l... Subject: Re: element census tool?
That doesn't look like it includes the attributes listing, nor the path to each element, as in the original request. Heck, 1-liners are easy if you simplify requirements ;) import sys, amara; doc = amara.parse(sys.argv[1]); print [ e.xml_qname for e in doc.xml_select('//*')]"
Note: above includes the details of actually loading the file. I suspect you might have to specify a bit more in the xmlsh example?
On Wed, Feb 2, 2011 at 3:03 PM, David Lee <dlee@c...> wrote:
Theres always the XQuery approach ( example in xmlsh)
xquery -q distinct-values( //node-name(.) )
---------------------------------------- David A. Lee
dlee@c... http://www.xmlsh.org
From: Uche Ogbuji [mailto:uche@o...]
Sent: Wednesday, February 02, 2011 4:43 PM To: xml-dev@l... Subject: Re: element census tool?
Oh what the heck. I might as well offer a quick and dirty Amara [1] recipe.
from amara.lib.util import element_subtree_iter from amara.xpath.util import abspath doc = amara.parse(sys.argv[1]) top_prefixes = dict(doc.xml_select('*')[0].xml_namespaces) for e in element_subtree_iter(doc):
print abspath(e, prefixes=top_prefixes) attrs = dict(e.xml_attributes)
python element_census.py http://www.retards.org/library/technology/computers/programming/xml/example-xbel.xml | head
{(None, u'version'): u'1.0'} {(None, u'folded'): u'yes'} {(None, u'folded'): u'yes'}
{(None, u'href'): u'http://www.sciam.com/1999/0599issue/0599bosak.html'}
Pretty easy to tweak or format and details of report, etc. In the example above I pass along a URL. You can also pass along a file name, if you like.
[1] http://www.xml3k.org/Amara -- Uche Ogbuji http://uche.ogbuji.net
Weblog: http://copia.ogbuji.net Poetry ed @TNB: http://www.thenervousbreakdown.com/author/uogbuji/
Founding Partner, Zepheira http://zepheira.com Linked-in: http://www.linkedin.com/in/ucheogbuji
Articles: http://uche.ogbuji.net/tech/publications/ Friendfeed: http://friendfeed.com/uche
Twitter: http://twitter.com/uogbuji http://www.google.com/profiles/uche.ogbuji
-- Uche Ogbuji http://uche.ogbuji.net Weblog: http://copia.ogbuji.net
Poetry ed @TNB: http://www.thenervousbreakdown.com/author/uogbuji/ Founding Partner, Zepheira http://zepheira.com
Linked-in: http://www.linkedin.com/in/ucheogbuji Articles: http://uche.ogbuji.net/tech/publications/
Friendfeed: http://friendfeed.com/uche Twitter: http://twitter.com/uogbuji http://www.google.com/profiles/uche.ogbuji
-- Uche Ogbuji http://uche.ogbuji.net Weblog: http://copia.ogbuji.net
Poetry ed @TNB: http://www.thenervousbreakdown.com/author/uogbuji/ Founding Partner, Zepheira http://zepheira.com
Linked-in: http://www.linkedin.com/in/ucheogbuji Articles: http://uche.ogbuji.net/tech/publications/ Friendfeed: http://friendfeed.com/uche
Twitter: http://twitter.com/uogbuji http://www.google.com/profiles/uche.ogbuji
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
|