Html 민첩성 팩 SelectSingleNode는 반복에서 항상 동일한 결과를 제공합니까?

c# html html-agility-pack selectsinglenode

문제

컬렉션의 노드를 싶지만 SelectSingleNode를 반복하면서 동일한 객체를 계속 node.Id가 변경하고 있습니다 ... 내가 시도하는 것은 주어진 사이트의 webresponse를 읽고 값, 링크 같은 정보를 잡는 것입니다. 특별하게 정의 된 요소.

int offSet = 0;
string address = "http://www.testsite.de/ergebnisliste.html?offset=" + offSet;

HtmlWeb web = new HtmlWeb();
//web.OverrideEncoding = Encoding.UTF8;
HtmlDocument doc = web.Load(address);

HtmlNodeCollection collection = doc.DocumentNode.SelectNodes("//div[@itemtype='http://schema.org/Posting']");

foreach (HtmlNode node in collection) {
    string id = HttpUtility.HtmlDecode(node.Id);
    string cpname = HttpUtility.HtmlDecode(node.SelectSingleNode("//span[@itemprop='name']").InnerText);
    string cptitle = HttpUtility.HtmlDecode(node.SelectSingleNode("//span[@itemprop='title']").InnerText);
    string cpaddress = HttpUtility.HtmlDecode(node.SelectSingleNode("//span[@itemprop='addressLocality']").InnerText);
    string date = HttpUtility.HtmlDecode(node.SelectSingleNode("//div[@itemprop='datePosted']").InnerText);
    string link = "http://www.testsite.de" + HttpUtility.HtmlDecode(node.SelectSingleNode("//div[@class='h3 title']//a[@href]").GetAttributeValue("href", "default"));               
}

예를 들어 1 반복입니다.

<div id="66666" itemtype="http://schema.org/Posting">   
<div>
    <a>
        <img />
    </a>
</div>
<div>
    <div class="h3 title">
        <a href="/test.html"  title="Test">
            <span itemprop="title">Test</span>
        </a>
    </div>
    <div>
        <span itemprop="name">TestName</span>       
    </div>
</div>
<div>
    <div>
        <div>
            <div>
                <span itemprop="address">Test</span>
            </div>
            <span>                     
                <a>
                    <span><!-- --></span>
                    <span></span>
                </a>
            </span>         
        </div>
    </div>      
    <div itemprop="date">
        <time datetime="2013-03-01">01.03.13</time>
    </div>
</div>

수락 된 답변

글쓰기

node.SelectSingleNode("//span[@itemprop='name']").InnerText

그것은 당신이 쓰는 것과 같습니다.

doc.DocumentNode.SelectSingleNode("//span[@itemprop='name']").InnerText

당신이하고 싶은 일을하기 위해서는 node.SelectSingleNode(".//span[@itemprop='name']").InnerText 와 같이 써야합니다 node.SelectSingleNode(".//span[@itemprop='name']").InnerText .

이거 . 점 / 기간은 현재 노드에서 검색 할 이야기 node 대신에 doc



Related

아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.