Atercatus
42
2019-02-06 03:48:55
2
740

xpath 와 xml


안녕하세요 현재 대학생신분인 개발자 지망생입니다

웹크롤링을 공부하던 와중에 크롬에서 copy xpath 를 하여 이를 통해 요소에 접근하는것을 보게되었는데 

xpath 라는걸 처음보게되어 검색을 해봤습니다. 

xml 파일에서 나타난 노드들의 경로 라는데 그러면 웹페이지를 만들 때 이 xml 파일을 생성해 주는건가요?

제가 nodejs 로 웹페이지를 만들 때는 이러한 것을 한 적이 없는데두  그 웹페이지에서 copy xpath 가 되는 것을 보면 이게 아닌거 같기두 하구 잘 모르겠습니다.

xpath 의 정확한 의미가 궁금합니다. 도와주세요 ㅠ

0
  • 답변 2

  • BK
    1k
    2019-02-06 11:28:47


    xml 파일에서 나타난 노드들의 경로 라는데 그러면 웹페이지를 만들 때 이 xml 파일을 생성해 주는건가요?

    흔히 "웹페이지"를 만든다 하면 브라우저가 렌더링 할수 있는 HTML 문서를 만드는것을 일컫습니다.

    XML 문서를 만들지는 않습니다.

    다만, XML과 HTML은 둘 다 DOM이란 구조체를 갖고 있으므로 XPATH를 통해 DOM 구조 내의 경로를 표현할수 있는것입니다.


    (https://blog.opid.kr/m/95)


    제가 nodejs 로 웹페이지를 만들 때는 이러한 것을 한 적이 없는데두  그 웹페이지에서 copy xpath 가 되는 것을 보면 이게 아닌거 같기두 하구 잘 모르겠습니다.

    nodejs로 만들었던 (react, javascript, perl, java, asp, python 등등) 뭘로 만들었던 간에 우리가 "웹페이지"를 만든다 하면 브라우저가 읽을 HTML을 (정적 HTML올 손으로 찍던지, 동적으로 HTML을 생성하는 프로그램을 짜던지) 창출한다는 것입니다.

    물론 요즘은 소프트웨어 개발이 전반적으로 많이들 추상화 되어 있어서 기본 텍스트 에디터에 일일이 HTML Markup을 입력하는 일은 드물어 졌지만, 더도말고 결국엔 HTML입니다.


    xpath 의 정확한 의미가 궁금합니다. 도와주세요 ㅠ

    XPATH  X(ML-)PATH


    말 그대로 XML 경로입니다.

    윈도우 파일 시스템의 구조가 드라이브의 루트(예: "C:\")로 부터 시작하는 Tree 구조이듯이,

    XML 문서 역시 해당 루트 노드에서 시작하는 Tree 구조이며

    HTML 문서 또한 <html> 노드에서 시작하는 Tree 구조입니다.


    파일 경로 "C:\bin\*.txt"는:

    • C: 드라이브 아래
    • bin 폴더 아래
    • .txt 확장자를 가진 모든 파일

    로 이해 하듯이


    XPATH (즉 XML 경로) "html/body/div[3]/@class"는:

    • <html> 노드 아래
    • <body> 노드 아래
    • 세번째 <div> 노드의
    • "class" Attribute의 값

    을 표현하는 경로로 이해 할 수 있습니다.


    말이 되는지 모르겠네요.  T_T

  • Atercatus
    42
    2019-02-06 12:54:45

    BK님 감사합니다! 정말  상세한 설명 덕분에 바로 이해가 가네요.

    도움 되는 링크도 정말 감사합니다!

  • 로그인을 하시면 답변을 등록할 수 있습니다.