且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何在不使用HTMLDocument的情况下从c#中的html字符串访问值

更新时间:2023-11-05 09:41:22

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TestProj
{
    class Program
    {
        struct NameValuePair
        {
           public string Name;
           public string Value;
        }
         
        static void Main(string[] args)
        {
            dataforbank("<input value=\"khan\" type=\"hidden\" name=\"input1\"/>");

            Console.ReadLine();
        }

        private static void dataforbank(string data)
        {
            char slpitchar = ' ';          
            string[] strSplitRes = data.Split(slpitchar);

            List<namevaluepair> lstNameValue = new List<namevaluepair>();

            foreach (string Param in strSplitRes)
            {
                if (Param.Contains("value="))
                {
                    string[] NameValue = Param.Split('=');

                    NameValuePair objNameValue = new NameValuePair();

                    objNameValue.Name  = NameValue[0];
                    objNameValue.Value = NameValue[1];

                    objNameValue.Value = RemoveString(objNameValue.Value, "/>");

                    lstNameValue.Add(objNameValue);
                }
                if (Param.Contains("type="))
                {
                    string[] NameValue = Param.Split('=');

                    NameValuePair objNameValue = new NameValuePair();

                    objNameValue.Name = NameValue[0];
                    objNameValue.Value = NameValue[1];

                    objNameValue.Value = RemoveString(objNameValue.Value, "/>");

                    lstNameValue.Add(objNameValue);
                }
                if (Param.Contains("name="))
                {
                    string[] NameValue = Param.Split('=');

                    NameValuePair objNameValue = new NameValuePair();

                    objNameValue.Name = NameValue[0];
                    objNameValue.Value = NameValue[1];

                    objNameValue.Value = RemoveString(objNameValue.Value, "/>");

                    lstNameValue.Add(objNameValue);
                }
            }

            foreach (NameValuePair Namevalue in lstNameValue)
            {
                Console.WriteLine("Name:{0} Value:{1}", Namevalue.Name, Namevalue.Value);
            }

        }

        private static int[] GetIndexsInString(string strInput, string SubString)
        {
            int[] Index = new int[2];

            if (strInput.Contains(SubString))
            {
                for (int startIndex = 0; startIndex < strInput.Length; startIndex++)
                {
                    if (strInput.Substring(startIndex, SubString.Length) == SubString)
                    {
                        Index[0] = startIndex;
                        Index[1] = startIndex + SubString.Length - 1;

                        break;
                    }
                }
            }

            return Index;
        }

        private static string RemoveString(string strInput, string RemoveString)
        {
            string strResult = strInput;

            int[] Index = new int[2];

            Index = GetIndexsInString(strInput, RemoveString);

            if (Index[0] != Index[1])
            {
                strResult = strInput.Remove(Index[0], (Index[1] - Index[0]) + 1);
            }

            return strResult;
        }
    }
}