1 // HtmlAgilityPack V1.0 - Simon Mourier <simonm@microsoft.com>
3 using System.Collections;
5 namespace HtmlAgilityPack
7 internal class NameValuePair
9 internal readonly string Name;
10 internal string Value;
12 internal NameValuePair()
16 internal NameValuePair(string name):
22 internal NameValuePair(string name, string value):
29 internal class NameValuePairList
31 internal readonly string Text;
32 private ArrayList _allPairs;
33 private Hashtable _pairsWithName;
35 internal NameValuePairList():
40 internal NameValuePairList(string text)
43 _allPairs = new ArrayList();
44 _pairsWithName = new Hashtable();
49 internal string GetNameValuePairValue(string name)
52 throw new ArgumentNullException();
53 ArrayList al = GetNameValuePairs(name);
58 NameValuePair nvp = al[0] as NameValuePair;
62 internal ArrayList GetNameValuePairs(string name)
66 return _pairsWithName[name] as ArrayList;
69 private void Parse(string text)
72 _pairsWithName.Clear();
76 string[] p = text.Split(';');
79 foreach(string pv in p)
83 string[] onep = pv.Split(new char[]{'='}, 2);
86 NameValuePair nvp = new NameValuePair(onep[0].Trim().ToLower());
95 ArrayList al = _pairsWithName[nvp.Name] as ArrayList;
99 _pairsWithName[nvp.Name] = al;
105 internal static string GetNameValuePairsValue(string text, string name)
107 NameValuePairList l = new NameValuePairList(text);
108 return l.GetNameValuePairValue(name);