통사론

통사론

xmllint출력을 얻는 방법문서?

thufir@dur:~/xmllint$ 
thufir@dur:~/xmllint$ xmllint --html http://www.skynet.be/nieuws-sport/weer/mijn-weer?cityId=6450  --xpath '//div[@class = "tides"]' - 2>/dev/null
<div class="tides">
            <div class="weather-sprite icon  st_nl" title="Marées Oostende"></div>
            <p>Hoogtij: <strong>10:28</strong>  <strong>23:11</strong></p>
            <p>Laagtij: <strong>04:44</strong>  <strong>17:13</strong></p>
            <div class="weather-sprite icon  anv_nl clearFlt" title="Marées Anvers"></div>
            <p>Hoogtij: <strong>00:41</strong>  <strong>13:06</strong></p>
            <p>Laagtij: <strong>07:11</strong>  <strong>07:11</strong></p>
        </div><div class="tides">
            <div class="weather-sprite icon  st_nl" title="Marées Oostende"></div>
            <p>Hoogtij: <strong>11:31</strong>  <strong></strong></p>
            <p>Laagtij: <strong>05:48</strong>  <strong>18:10</strong></p>
            <div class="weather-sprite icon  anv_nl clearFlt" title="Marées Anvers"></div>
            <p>Hoogtij: <strong>01:42</strong>  <strong>14:02</strong></p>
            <p>Laagtij: <strong>08:20</strong>  <strong>08:20</strong></p>
        </div>
^C
thufir@dur:~/xmllint$ 

멈추면 죽여야 합니다. 아름다운 매뉴얼:

   --output FILE
       Define a file path where xmllint will save the result of parsing.
       Usually the programs build a tree and save it on stdout, with this
       option the result XML instance will be saved onto a file.

하지만 제대로 작동하지 못했습니다. 콘솔의 출력은 전혀 필요하지 않으며 파일 생성에만 관심이 있습니다. html처리를 위해 정리하는 것입니다 saxon.

답변1

--html옵션 을 사용할 때 생각하는 것xmllint--format, 및 같은 일부 다른 옵션은 무시됩니다 --output. (시험을 마친libxml2v2.9.4는 macOS High Sierra와 함께 제공되며 v2.9.10은스스로 만든.)

대신, xmllint출력을 파일에 쓰 려면 >("보다 큼") 리디렉션 연산자를 사용하여 표준 출력 스트림을 리디렉션할 수 있습니다.

통사론

xmllint --html input.html > output.html

xmllint --html --xpath "//p" http://example.com > output.html 2>/dev/null

옵션/매개변수:

  • --html— 입력을 HTML로 구문 분석합니다.
  • --xpath "//p"— XPath 쿼리는 <p>입력에서 모든 태그를 선택합니다.
  • http://example.com— 입력 파일(이 경우 지정된 URL에서 직접 다운로드됨)
  • > output.html— 표준 출력 스트림(stdout)을 지정된 파일로 리디렉션합니다.
  • 2>/dev/null— 선택 사항: 터미널을 빈 장치( )로 리디렉션하여 /dev/null터미널에서 표준 오류 스트림(stderr)을 억제합니다 .

(바라보다이 답변훌륭한 출력/오류 리디렉션 치트 시트입니다. )

HTTPS

xmllintHTTPS는 현재 지원되지 않는 것 같습니다(예 :이 문제). 대신 다음과 같은 다른 유틸리티를 사용할 수 있습니다.curl또는wget먼저 파일을 다운로드한 다음 ("파이프"/"파이프") 제어 연산자와 ("하이픈/빼기")를 파일 인수로 xmllint사용하여 표준 입력으로 파이프합니다 .|-xmllint

curl --silent "https://example.com" | xmllint --html --xpath "//p" - > output.html 2>/dev/null

옵션/매개변수:

  • --silent또는 -s- curl진행/오류 메시지를 억제합니다(그렇지 않으면 xmllint파서에 의해 처리될 수 있음).
  • "https://example.com"— 입력 파일을 다운로드하고 curl(이 경우 HTTPS를 통해) 에 전달합니다 xmllint. ( &URL에 다른 특수 문자가 포함된 경우 따옴표를 사용하십시오.)
  • |— 이전 명령의 표준 출력( )을 다음 명령의 curl표준 입력( )으로 파이프합니다.xmllint
  • --htmlxmllint입력을 구문 분석하여 HTML로 구문 분석합니다.
  • --xpath "//p"— XPath 쿼리는 <p>입력에서 모든 태그를 선택합니다.
  • -— 파일이나 URL이 아닌 표준 입력 스트림(stdin)(즉, 출력)에서 xmllint입력을 가져옵니다.curl
  • > output.htmlxmllint표준 출력 스트림(stdout)을 지정된 파일로 리디렉션합니다.
  • 2>/dev/null— 선택 사항: xmllint터미널을 빈 장치( )로 리디렉션하여 터미널에서 표준 오류 스트림(stderr)을 억제합니다 /dev/null.

(바라보다이 답변제어/리디렉션 연산자의 좋은 목록입니다. )

관련 정보