문제 분석 XML일부 정보를 추출하기 위해 HTML 페이지를 구문 분석해야하지만 예기치 않은 결과가 발생합니다. 아래 스크립트를 참조하십시오.
HTMLPageAsText = "
<TITLE>String 1 i want to get</TITLE>
String 2 i want to get
<H2 id="toc-hId-1618931352" id="toc-hId-1618931352">Possibly also this</H2>
<H2 id="toc-hId--933225609" id="toc-hId--933225609">why i get only this</H2>
";
PageTitle="";
PageBody="";
Parse XML( HTMLPageAsText,
On Element( "title",
End Tag( PageTitle=XML text();show("Found title") )
),
On Element( "body",
End Tag( PageBody=XML text();show("Found body") )
),
);
show(PageTitle,PageBody);
내가 이상적으로 변수 PageBody 필요합니다 :
PageBody="String 2 i want to get
<H2 id="toc-hId-809584726" id="toc-hId-809584726">Possibly also this</H2>
<H2 id="toc-hId--1742572235" id="toc-hId--1742572235">why i get only this</H2>"
또는 내가 기대하는 하위 태그를 제외한 태그의 내용 만 가져올 수 있다면
PageBody="String 2 i want to get"
대신에 내가 얻는 것은 :
PageBody="why i get only this"
내가 뭘 잘못하고 있죠?
XML을 구문 분석 문제 :감사!
이것은 현재 할 것입니다.
그러나 향후 개발을 위해 태그의 전체 내용 (텍스트로 중첩 된 태그 포함)을 반환하는 XML Body ()와 같은 On 요소 ()에 대한 추가 명령이 실제로 유용 할 수 있습니다.
HTML vs XML에 대한 코멘트에서 나는 그 요지를 얻는다. 웹 페이지가 더 복잡해지면 XML을 준수하게하여
을 대체하여 처리하도록 노력할 것입니다. 나는 비 닫힌 태그를 추적하고 XML 올바른 버전으로 대체 루프를 구상 수 있습니다. 그러나 XML 구문 분석기가 경고를 발생 시키지만 결함이있는 HTML에 대해 웹 브라우저가 수행하는 것과 유사한 오류가 발생할 경우 실행을 계속하는 것이 좋습니다.
마지막으로 문서에 관해서 : 나는 XML 구문 분석을 위해 문서화가 다소 미흡하다는 점에 동의합니다. 따라서 XML을 업데이트하는 동안 XML Attr ()에 대한 두 번째 인수도 함께 포함하십시오. 현재 설명서에서는 0과 1 속성 만 가능하지만 2 개의 인수를 사용하는 코드 조각을 찾았고 두 번째 인수는 특성을 찾을 수없는 경우 반환되는 문자열입니다.
나는 이것이 순간에 문서화되지 않은 유용한 기능이라고 생각한다.
감사.
XML을 구문 분석 문제 :내가 말할 수있는 한, 결코 문서화되지 않았을 수도있는 뭔가가 빠져있다 : text (). EndTag ()와 유사합니다.
HTMLPageAsText = "
<TITLE>one of four</TITLE>
two of four
<H2 id="toc-hId-238100" id="toc-hId-238100">three of four</H2>
<H2 id="toc-hId-1743048435" id="toc-hId-1743048435">four of four</H2>
";
title = "";
body = "";
Parse XML( HTMLPageAsText,
On Element( "title",
End Tag( title = XML Text(); )
),
On Element( "body",
Text( body = body || XML Text(); ),
)
);
show(title,body);
제목 = "네 가지 중 하나";
몸 = "4 명 중 2 명
4의 4 개 중 3 개 ";
- Text ()는 새로운 텍스트 스 니펫이 처리 될 때마다 실행됩니다.
- HTML과 XML은 대개 동일하지 않습니다. 귀하의 예제는 유효한 XML이기 때문에 작동합니다.
과 같은 여러 HTML 명령은 XML 판독기에서 사용되는 경우 일치하는 및 break가 없습니다.
- XML이 조금 더 복잡한 경우 중첩 수준도 추적해야 할 수 있습니다.
(나는 그것을하는 방법에 의아해하고있는 동안 나는 당신의보기를 고쳤다. 이 문서화 된 문서를 얻을 수 있는지 확인해 보겠습니다. 감사합니다.)