XDocument.Load( "Somelink")を使用してRssフィードを取得しました。私はサーバーからXML出力を取得しています。 descriptionタグでC#を使用して文字列から数値を抽出する
<item>
<title>Senior Web Developer</title>
<link>Some link</link>
<guid isPermaLink="false">Some link</guid>
<description><![CDATA[University of UK <br />Salary: £39,324 to £46,924 pa]]></description>
</item>
私は、会社情報や給与を取得しています、私はそのリンクから給与を抽出するために、どのように、その記述にのみ給与部分を必要としています。
var items = (from x in xDoc.Descendants("item")
select new
{
title = x.Element("title").Value,
description = x.Element("description").Value
});
説明タグからその給与を抽出する方法。私はその給与を2つの異なるラベルに表示したい。
グリッドビューで給与が必要です。給与から給与までです。 Regex.Matchメソッドの最初の2桁のみを試しました。
コード: -
<asp:GridView ID="gRss" runat="server" AutoGenerateColumns="false"
ShowHeader="false" CssClass="table table-bordered table-striped">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<table class="table table-bordered table-striped">
<tr>
<td class="info"><%#Eval("Title") %></td>
</tr>
<tr>
<td><%#Eval("SalaryFrom") %></td>
</tr> <tr>
<td><%#Eval("SalaryTo") %></td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
C#コード
List<Feeds> feeds = new List<Feeds>();
try
{
XDocument xDoc = new XDocument();
xDoc = XDocument.Load("Some link");
var items = (from x in xDoc.Descendants("item")
select new
{
title = x.Element("title").Value,
description = x.Element("description").Value
});
if(items != null)
{
foreach(var i in items)
{
// string resultString = Regex.Match(i.description, @"\d+").Value;
//resultString = Regex.Match(subjectString, @"\d+").Value;
var match = Regex.Match(i.description, @": £(?<from>.*?) to £(?<to>.*?) ");
var from = match["from"].Value;
var to = match["to"].Value;
Feeds f = new Feeds
{
Title = i.title,
Description = resultString
};
feeds.Add(f);
}
}
gRss.DataSource = feeds;
gRss.DataBind();
}
私は、System.Text.regularExpression.Match型のエフェクトに[]で索引付けを適用できません。質問にC#コードを追加しました。 –
これは、 'Match'オブジェクトの' Groups'プロパティにアクセスする必要があるからです。同様に: 'match.Groups [" from "]。Value;' – mireigi
修正しました。ありがとうございました。 –