[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
Re: [xml-dev] element census tool?
- From: Bjoern Hoehrmann <derhoermi@gmx.net>
- To: Uche Ogbuji <uche@ogbuji.net>
- Date: Thu, 03 Feb 2011 21:26:34 +0100
* Uche Ogbuji wrote:
>> 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);
>>
>
>Just to be clear, that's C# with LINQ, right? (IIRC LINQ is not part of the
>language def).
The core language specification won't even let you do file io, so yeah,
this is using System.Xml.Linq features. Note though that the SQL-like
language I could have used instead of method calls above is part of the
language specification (that is what I would consider "languaged inte-
grated query") the DOM-like object model for XML documents is not.
>> 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.
>
>Yeah, but if you've already gone through the exercise of parsing the XML, do
>you really save much by punting to pipes for the most generic bits?
It's more a matter of not having to write a special tool for this.
--
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]