<commit_before>//	Unmarshal arbitrary XML docs to map[string]interface{} or JSON and extract values (using wildcards, if necessary).
// Copyright 2012-2013 <NAME>. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file
/*
   Unmarshal dynamic / arbitrary XML docs and extract values (using wildcards, if necessary).

   One useful function is:

       - Unmarshal(doc []byte, v interface{}) error  
         where v is a pointer to a variable of type 'map[string]interface{}', 'string', or
         any other type supported by xml.Unmarshal().

   To retrieve a value for specific tag use: 

       - DocValue(doc, path string, attrs ...string) (interface{},error) 
       - MapValue(m map[string]interface{}, path string, attr map[string]interface{}, recast ...bool) (interface{}, error)

   The 'path' argument is a period-separated tag hierarchy - also known as dot-notation.
   It is the program's responsibility to cast the returned value to the proper type; possible 
   types are the normal JSON unmarshaling types: string, float64, bool, []interface, map[string]interface{}.  

   To retrieve all values associated with a tag occurring anywhere in the XML document use:

       - ValuesForTag(doc, tag string) ([]interface{}, error)
       - ValuesForKey(m map[string]interface{}, key string) []interface{}
<commit_msg>Notice in godoc.<commit_after>//	Unmarshal arbitrary XML docs to map[string]interface{} or JSON and extract values (using wildcards, if necessary).
// Copyright 2012-2013 <NAME>. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file
/*
   Unmarshal dynamic / arbitrary XML docs and extract values (using wildcards, if necessary).

	NOTICE: 03-Feb-2014, package deprecated.  Please see http://github.com/clbanning/mxj.

   One useful function is:

       - Unmarshal(doc []byte, v interface{}) error  
         where v is a pointer to a variable of type 'map[string]interface{}', 'string', or
         any other type supported by xml.Unmarshal().

   To retrieve a value for specific tag use: 

       - DocValue(doc, path string, attrs ...string) (interface{},error) 
       - MapValue(m map[string]interface{}, path string, attr map[string]interface{}, recast ...bool) (interface{}, error)

   The 'path' argument is a period-separated tag hierarchy - also known as dot-notation.
   It is the program's responsibility to cast the returned value to the proper type; possible 
   types are the normal JSON unmarshaling types: string, float64, bool, []interface, map[string]interface{}.  

   To retrieve all values associated with a tag occurring anywhere in the XML document use:

       - ValuesForTag(doc, tag string) ([]interface{}, error)
       - ValuesForKey(m map[string]interface{}, key string) []interface{}

{'fraction_non_alphanumeric': 0.09816163718348941, 'fraction_numerical': 0.009018383628165106, 'mean_word_length': 3.5996810207336525, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2569023', 'n_tokens_mistral': 787, 'n_tokens_neox': 719, 'n_words': 347}