AgilityPack으로 비 html 콘텐츠 읽기

c# html-agility-pack

문제

우리가 로딩하는 서비스 중 하나는 순수한 JSON 객체만으로 응답하는 것입니다. 우리는 모든 서비스를 html 민첩성 팩으로로드합니다. 다른 서비스는 JSON이 포함 된 스크립트 태그를 렌더링하고 예상대로 작동합니다. 그러나 비 html 형식으로 제공되는이 데이터를로드 할 수 없습니다. 로드 된 문서에는 요소가없고 Text 속성은 빈 문자열이며 DocumentElement의 외부 / 내부 html은 개체 null 예외를 throw하고 innerText는 비어 있거나 null입니다.

나는이 서비스를 HttpWebRequest와 함께로드하려고 시도하지만 그 일을한다.하지만이 서비스 때문에 기술을 혼합하고 싶지는 않다.

HtmlAgilityPack을 사용하여 순수한 JSON 데이터 페이지를로드 할 수 있습니까?

수락 된 답변

업데이트 :

내가 그 질문을 오해 한 것으로 나타났습니다.

HTML (또는이 경우 JSON)을 다운로드하는 동안 HAP의 핵심 기능은 HTML을 구문 분석하기위한 것입니다. HAP의 HtmlWeb 은이 작업을 수행하는 데 필요한 기본 기능 만 제공하므로 HtmlWeb 이 더 이상 작동하지 않는 상황에서 다른 도구로 전환해야 할 가능성이 큽니다. 이런 상황의 또 다른 예입니다. HTML 민첩성 팩 설정


초기 답변 :

빠른 테스트는 DocumentElement.InnerText 가 JSON을 올바르게 반환 함을 보여줍니다.

var json = @"{
    identifier: '2051189775',     //PRODUCT ID
    fn: 'Fit- Whiskered Dark Wash Skirt',
    category: ['sale'],
    brand: 'Brand Name',
    price: '22.90',  // this would be the discount price
    amount: '31.80',  // this would be the original price
    currency: 'USD',
    //List can me even more.
};";
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(json);

Console.WriteLine(doc.DocumentNode.InnerText);

라이브 데모 : https://dotnetfiddle.net/nPT49L

이 방법이 효과가 없다면 문제를 보여주는 샘플 JSON 데이터를 게시하시기 바랍니다.




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