XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
Re: [xml-dev] element census tool?

* Simon St.Laurent wrote:
>I know I could write this myself, but suspect someone else has already 
>done a better job of it - and I just don't know the right Google 
>keywords to summon it.
>
>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.
>
>Attributes used on those elements would be a bonus, as would a frequency 
>count for usage, but mostly I'm just trying to survey a collection of 
>(DocBook) documents quickly.

As this is turning into a rosetta code excercise, let me throw in C#:

  var elems = XDocument.Load(path).Root.DescendantsAndSelf();
  var attrs = elems.Attributes()
    .GroupBy(x => new { Attr = x.Name, Elem = x.Parent.Name });

  foreach (var elem in elems.GroupBy(x => x.Name))
    Console.WriteLine("{0} {1}", elem.Count(), elem.Key);

  Console.WriteLine();

  foreach (var attr in attrs)
    Console.WriteLine("{0} {1}/@{2}", attr.Count(),
      attr.Key.Elem, attr.Key.Attr);

Though it would seem the GNU-ish way to solve this would be having a
tool that prints out all the element names and attribute/element paths
and then use, say, `sort | uniq -c` on it.
-- 
Björn Höhrmann · mailto:bjoern@hoehrmann.de · http://bjoern.hoehrmann.de
Am Badedeich 7 · Telefon: +49(0)160/4415681 · http://www.bjoernsworld.de
25899 Dagebüll · PGP Pub. KeyID: 0xA4357E78 · http://www.websitedev.de/ 


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS