如何在不使用HTMLDocument的情况下从c#中的html字符串访问值 [英] how to access value from html string in c# without using HTMLDocument
本文介绍了如何在不使用HTMLDocument的情况下从c#中的html字符串访问值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
html代码
html code
<input type="hidden" name="input1" value="khan"/>
public static void dataforbank(string dat)
{
int index1 = dat.IndexOf("<input type=\"hidden\" name=\"input1\" value=\"");
string string1 = dat.Substring(index1);
string firstvalue = string1.Substring(string1.IndexOf("value=") + 7);
string go = firstvalue.Substring(0, firstvalue.IndexOf("\""));
Messagebox.Show(go);
}
答: - 汗但是当这样的HTML代码
Ans:- khan But when html code like this
<input value="khan" type="hidden" name="input1" />
<input value="kha1" type="hidden" name="input2" />
<input value="kha2" type="hidden" name="input3" />
<input value="kha3" type="hidden" name="input4" />
<input value="kha4" type="hidden" name="input5" />
如何使用相同的概念获取价值?
有html代码,但我如何按名称获取特定值?
How to access to value using same concept?
There is the html code but how do I get specific value by name?
推荐答案
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;
}
}
}
这篇关于如何在不使用HTMLDocument的情况下从c#中的html字符串访问值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文