1 // HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
\r
3 using System.Collections;
\r
5 namespace HtmlAgilityPack
\r
7 internal class NameValuePairList
\r
11 internal readonly string Text;
\r
12 private ArrayList _allPairs;
\r
13 private Hashtable _pairsWithName;
\r
17 #region Constructors
\r
19 internal NameValuePairList() :
\r
24 internal NameValuePairList(string text)
\r
27 _allPairs = new ArrayList();
\r
28 _pairsWithName = new Hashtable();
\r
35 #region Internal Methods
\r
37 internal static string GetNameValuePairsValue(string text, string name)
\r
39 NameValuePairList l = new NameValuePairList(text);
\r
40 return l.GetNameValuePairValue(name);
\r
43 internal ArrayList GetNameValuePairs(string name)
\r
47 return _pairsWithName[name] as ArrayList;
\r
50 internal string GetNameValuePairValue(string name)
\r
53 throw new ArgumentNullException();
\r
54 ArrayList al = GetNameValuePairs(name);
\r
58 // return first item
\r
59 NameValuePair nvp = al[0] as NameValuePair;
\r
60 return nvp != null ? nvp.Value : string.Empty;
\r
65 #region Private Methods
\r
67 private void Parse(string text)
\r
70 _pairsWithName.Clear();
\r
74 string[] p = text.Split(';');
\r
75 foreach (string pv in p)
\r
79 string[] onep = pv.Split(new char[] {'='}, 2);
\r
82 NameValuePair nvp = new NameValuePair(onep[0].Trim().ToLower());
\r
84 nvp.Value = onep.Length < 2 ? "" : onep[1];
\r
89 ArrayList al = _pairsWithName[nvp.Name] as ArrayList;
\r
92 al = new ArrayList();
\r
93 _pairsWithName[nvp.Name] = al;
\r