XPath 문서 평가 방법 C#

XPath는 XPath 표현식에 정의된 일부 기준과 일치하는 특정 노드를 찾는 데 사용할 수 있습니다. XPath 쿼리를 사용하여 XML 또는 HTML 문서를 탐색할 수 있습니다. 따라서 이 기사에서는 XPath를 사용하여 요구 사항에 따라 특정 노드를 선택하는 방법을 설명합니다.

XPath를 사용하여 XML 또는 HTML 파일에서 노드 선택 - C# API 설치

Aspose.HTML for .NET API를 사용하여 특정 유형의 노드를 선택하거나 선택한 노드에서 특정 정보를 읽는 프로세스를 자동화할 수 있습니다. New Releases 페이지에서 DLL 파일을 다운로드하거나 다음 NuGet 설치 명령을 사용하여 API를 빠르게 구성할 수 있습니다.

PM> Install-Package Aspose.Html

XPath Document.Evaluate() 메서드를 사용하여 C#의 HTML 웹 페이지에서 이미지 가져오기

Document.Evaluate() 메서드를 사용하여 HTML 웹 페이지에서 이미지를 가져올 수 있습니다. 이 프로세스를 완료하려면 아래 단계를 따르십시오.

  1. HTMLDocument 클래스의 객체를 초기화하여 소스 파일을 로드합니다.
  2. XPath 식 및 기타 매개 변수를 Evaluate 메서드에 전달합니다.
  3. 선택한 노드를 반복하고 각 이미지에 대한 링크를 가져옵니다.

다음 코드 샘플은 XPath Document.Evaluate() 메서드를 사용하여 HTML 웹 페이지에서 이미지를 가져오는 방법을 보여줍니다.

// HTML 문서의 인스턴스 생성
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "xpath.htm")))
{
    // XPath 표현식 평가
    var result = doc.Evaluate("//main/div[position() mod 2 = 1]//img[@class = 'photo']", doc, doc.CreateNSResolver(doc), Aspose.Html.Dom.XPath.XPathResultType.Any, null);

    // 결과 노드를 반복하고 콘솔에 출력
    Aspose.Html.Dom.Node node;
    while ((node = result.IterateNext()) != null)
    {
        var img = (Aspose.Html.HTMLImageElement)node;
        Console.WriteLine(img.Src);
    }
}

XPath Document.Evaluate() 메서드를 사용하여 C#의 XML 파일에서 노드 선택

경우에 따라 XML 파일에서 특정 노드를 선택해야 할 수도 있습니다. 다음 단계에서는 이러한 요구 사항을 충족하는 방법을 설명합니다.

  1. HTMLDocument 클래스로 소스 XML 파일을 로드합니다.
  2. XPath 식 및 기타 매개 변수를 전달하는 동안 Evaluate 메서드를 호출합니다.
  3. 선택한 노드를 반복하고 선택한 노드의 전체 내용을 인쇄합니다.

아래 코드 스니펫은 XPath Document.Evaluate 메서드를 사용하여 XML 파일에서 노드를 선택하는 방법을 보여줍니다.

// 문서 인스턴스 만들기
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "cars.xml")))
{
    // XPath 표현식 평가
    var dealers = doc.Evaluate("//Dealer[descendant::Car[descendant::Model > 2005 and descendant::Price < 25000]]", doc, doc.CreateNSResolver(doc), XPathResultType.Any, null);
    Aspose.Html.Dom.Node dealer;

    // 결과 노드를 반복하고 해당 내용을 콘솔에 출력
    while ((dealer = dealers.IterateNext()) != null)
    {
        Console.WriteLine(dealer.TextContent);
    }
}

XPath Document.Evaluate() 메서드를 사용하여 C#의 선택된 노드에서 특정 정보 선택

때로는 전체 콘텐츠 대신 노드에서 특정 세부 정보를 가져와야 할 수도 있습니다. 아래 단계에 따라 XPath 쿼리를 사용하여 선택한 노드에서 특정 정보를 얻을 수 있습니다.

  1. HTMLDocument 클래스를 사용하여 입력 XML 파일에 액세스합니다.
  2. Evaluate 메서드를 호출하여 XPath 식과 일치하는 노드를 가져옵니다.
  3. 일치하는 노드를 반복하고 각 노드의 특정 콘텐츠를 인쇄합니다.

다음 코드 샘플은 XPath Document.Evaluate 메서드를 사용하여 XML의 선택된 노드에서 특정 정보를 선택하는 방법을 설명합니다.

// 문서 인스턴스 만들기
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "cars.xml")))
{
    // XPath 표현식과 일치하는 딜러 선택
    var dealers = doc.Evaluate("//Dealer[descendant::Car[descendant::Model > 2005 and descendant::Price < 25000]]", doc, doc.CreateNSResolver(doc), XPathResultType.Any, null);
    Aspose.Html.Dom.Node dealer;

    // 선택된 딜러에 대해 반복
    while ((dealer = dealers.IterateNext()) != null)
    {
        // 딜러 이름과 전화번호 확인 및 인쇄
        var dealerInfo = doc.Evaluate("concat('Dealer name: ', Name, ' Telephone: ', Telephone)", dealer, doc.CreateNSResolver(doc), XPathResultType.String, null);
        Console.WriteLine(dealerInfo.StringValue);

        // XPath 표현식과 일치하는 CarID 선택 및 인쇄
        var carIds = doc.Evaluate(".//Car[descendant::Model > 2005 and descendant::Price < 25000]/@CarID", dealer, doc.CreateNSResolver(doc), XPathResultType.Any, null);
        Aspose.Html.Dom.Node carId;

        while ((carId = carIds.IterateNext()) != null)
        {
            Console.WriteLine("Car id: " + carId.TextContent);
        }
    }
}

XPath를 사용하여 C#에서 노드 선택 - 자세히 알아보기

문서 섹션의 다음 항목을 방문하여 XPath 쿼리 작업에 대한 자세한 내용을 알아볼 수 있습니다.

C#의 HTML 또는 XML에서 노드를 선택하기 위한 XPath 쿼리 - 무료 평가판 라이선스

무료 임시 라이센스를 요청하여 제한 없이 API 기능을 전체 용량으로 테스트할 수 있습니다.

결론

이 기사에서는 XPath Query Document.Evaluate 메서드를 사용하여 XPath 식과 일치하는 특정 노드 또는 선택한 노드의 특정 콘텐츠를 선택하는 방법을 배웠습니다. 우려 사항에 대해 논의하고 싶은 경우 무료 지원 포럼에서 저희에게 연락해 주십시오.

또한보십시오

C#을 사용하여 HTML에서 CSS 선택기 사용