私はXMLファイルを読んでいますが、これらのは正しく形成されていません。だから、私はそれらをテキスト関数で読みます。私の問題は、私は、たとえば、diferentあるタグから値を取得する必要があるということです。テキスト文字列で値を見つけよう
私は必要なもの、たとえば、最後のタグからの値である:15.000、9.490および9.220。
私はファイルを読む:
public string Leer(string archivo)
{
string texto;
using (var streamReader = new StreamReader(archivo, Encoding.UTF8))
{
texto = streamReader.ReadToEnd();
}
return texto;
}
私は数値が含まれているstrigのセグメント、読んで:私は値から数値のみを単離するため、正規表現を使用して取得しようと
public string getRango(string strSource, string strStart, string strEnd)
{
int Start, End;
if (strSource.Contains(strStart) && strSource.Contains(strEnd))
{
Start = strSource.IndexOf(strStart, 0) + strStart.Length;
End = strSource.IndexOf(strEnd, Start);
return strSource.Substring(Start, End-3500);
}
else
{
return "";
}
}
をテキスト。
public string extraerValor(string str)
{
string patron = @"\d+(\.\d{1,3})?";
string input = "";
if (System.Text.RegularExpressions.Regex.IsMatch(str, patron))
{
input = Regex.Replace(str, "[a-zA-Z]*", string.Empty);
return input;
}
else
{
return "Nada";
}
}
だから、私は私が読んですべての値を取得するためのDataTableを使用します。
CartDT.Columns.Add("rango", typeof(string));
CartDT.Columns.Add("ValorExtraido", typeof(string));
CartDT.Columns.Add("nombreArchivo", typeof(string));
を私は値を読み、GridViewのに送信:
foreach (string file in Directory.EnumerateFiles(directoryPath, "*.xml"))
{
try
{
string lecturaXML = b.Leer(file);
string nombreArchivo = Path.GetFileNameWithoutExtension(file);
dr = CartDT.NewRow();
dr["rango"] = b.getRango(lecturaXML, "<campoAdicional nombre=" + @"""TASA DE RECOLECCION DE BASURA", "</campoAdicional>");
dr["ValorExtraido"] = b.extraerValor(b.getRango(lecturaXML, "<campoAdicional nombre=" + @"""TASA DE RECOLECCION DE BASURA", "</campoAdicional>").ToString());
dr["nombreArchivo"] = nombreArchivo;
CartDT.Rows.Add(dr);
}
catch (System.Xml.XmlException)//Excepcion en caso de xml mal formado
{ }
}
//mandar la informacion a la grilla
gvwFacturas.DataSource = CartDT;
gvwFacturas.DataBind();
}
それは意味、私がしたいです読んでください: campoAdicional nombre = "TASA DE RECOLECCION DE BASURA(まったく)............. 5.490 .............(もっとデータ)...." しかし、私は数値(5.490)
そして、私は数値を取得することはできません。
これを入手する方法はありますか? お願い、誰でも私を助けてくれることを願っています。
よろしく
なぜあなたはそれを解析し、未形成のデータを期待しようとすることができますが、それだけでハックの上にハックを要求し、適切に形成されていないデータである – 10100111001
何彼らは "彼らは正しく形成されていない"という意味ですか、明確に最初のポイントは、XMLを修正する必要がありますし、XDocumentまたはXmlDocumentクラス – Haris