저는 C#/html 민첩성 팩으로 설정된 노드로 잠시 동안 일해 왔습니다. 시행 착오를 통해 루프를 반복 할 노드 목록이 있습니다. 각 노드의 자식 노드를 고리. 나는 그것들을 색인 #으로 언급하고 싶다. (가장 쉬운 것 같지만 여기에 게시한다.) 나는 "[0]", "/ [0]", "tr/[0]"등을 포함하여 xpath를 포맷하는 다른 방법을 시도했다. 여기에 내가 지금까지 가지고있는 것이있다. 줄 :Html 민첩성 팩/xpath는 [index] help로 자식 노드를 선택 하시겠습니까?
protected override List<IDataPoint> ReturnDataPointsFromIndividualAddressString(string AddressString)
{
List<IDataPoint> earningsAnnouncements = new List<IDataPoint>();
HtmlWeb hwObject = new HtmlWeb();
HtmlDocument htmlDoc = hwObject.Load(AddressString);
if (htmlDoc.DocumentNode != null)
{
List<HtmlNode> nodeList = new List<HtmlNode>();
var nodes = htmlDoc.DocumentNode.SelectNodes("html[1]/body[1]/table[4]/tr[1]/td[1]/table[1]/tr");
if (nodes != null)
{
foreach (HtmlNode n in nodes)
{
if (n.OuterHtml.Contains("finance.yahoo.com"))
nodeList.Add(n);
}
}
foreach (HtmlNode node in nodeList)
{
EarningsAnnouncementDP earningsAnnouncement = new EarningsAnnouncementDP();
//Error: Expression must evaluate to a node set.
earningsAnnouncement.Company = (node.SelectSingleNode("[0]")).InnerText.ToString();
earningsAnnouncement.Ticker = node.SelectSingleNode("[1]").InnerText.ToString();
earningsAnnouncement.Estimate = node.SelectSingleNode("[2]").InnerText.ToString();
earningsAnnouncement.AnnouncementTime = node.SelectSingleNode("[3]").InnerText.ToString();
earningsAnnouncements.Add(earningsAnnouncement);
}
return earningsAnnouncements;
}
왜 자식 노드에 액세스 할'ChildNodes' 속성을 사용하지 않는? – Alex
@Alex 그게 내가 찾고있는 것 뿐이니, 고마워. – StatsViaCsh