2012-04-03 2 views
-1

내 프로그램에서, 나는 org.w3c.dom.Node node의 좌표를 얻으려고하는데, Dom은 HTML 파일의 고유 한 데이터 구조이므로 어떻게 할 수 있습니까?dom 노드의 좌표

  Parser p = new Parser(); 
       SAX2DOM sax2dom = null; 
     org.w3c.dom.Node doc = null; 



    URL url = new URL("some adr"); 
     p.setFeature(Parser.namespacesFeature, false); 
     p.setFeature(Parser.namespacePrefixesFeature, false); 
     sax2dom = new SAX2DOM(); 
     p.setContentHandler(sax2dom); 
     p.parse(new InputSource(new InputStreamReader(url.openStream()))); 
     doc = sax2dom.getDOM(); 
     html =doc.getFirstChild(); 

EDIT " 내가하는 HTML 문서로 다시 DOM을 전송할 때, 입력 장치에서 독립적 인 코드를 사용하는 기회가 될 것입니다 경우는 마우스 동작에 따라, 다만 궁금 좌표 싶어 그나마 얻을 수 위치, 엔진을 사용하는 원인이됩니다. 노드 또는 점의 좌표를 얻는 함수를 누른 다음 페이지가로드되는 즉시 가리 키도록 브라우저를 스크롤하는 기능. 그래서 엔진이 제공 할 때 생각, 다음 노드의 얻을 가능성이있다 당신이 link

+0

'노드 노드 - 응? 무슨 소리 야? 답변을 드릴 정도로 세부적인 내용을 얻을 수 있도록 질문을 다시 말하십시오. –

+0

@ThorstenDittmar 어떻게 지금 abt? – lonesome

+0

좋아 ... 그래서 :'화면에서 무엇을 의미합니까? XML 파일을 표시하고 있습니까? 너 뭐하고 있니? XML 노드 (텍스트 파일의 텍스트 일뿐입니다)는 어떻게 '화면에'있어야합니까? 당신이하려는 일에 대해 더 자세히 설명해주십시오. –

답변

1

그것은 SAX 파서와 불가능을 볼 수 있습니다 too.here 위치.

SAX-parser는 컨텍스트에서 컨텐트를 얻기 위해 XML 문서를 구문 분석합니다.

HTML과 XML은 다른 점입니다.

  • HTML은 마크 업 설명입니다. "This is a heading"과 같습니다.
  • XML은 콘텐츠의 구조적 설명입니다. "PERSON이라는 개체가 있습니다. NAME이라는 특성이 있습니다."

HTML 콘텐츠에는 전자 메일이 없습니다. 위치는이 데이터에 대한 뷰를 생성하는 렌더링 엔진에서 가져옵니다. 위치 지정은 CSS를 적용하여 이루어집니다.

HTML 문서 내에 요소의 위치를 ​​가져 오려면 브라우저 렌더링 엔진이 필요합니다. selenium testdriver을 사용해보십시오. screen`에서

This article may help.

+0

그게 내가 지난 30 분 동안 분명히하려고 노력해 왔던 것입니다. - 당신이 작업의 불가능 성을 설명하는 데 성공했는지 보도록하겠습니다 :-) –

+0

나는 당신이 의미하는 바를 알고 있지만, 나는 좌표를 얻고 싶지 않습니다. 마우스 동작을 기반으로 HTML 문서로 DOM을 다시 전송할 때 입력 장치와 독립된 코드를 사용하여 위치를 얻거나 엔진을 사용하는 원인이 될지 궁금해졌습니다. 점의 좌표를 입력 한 다음 페이지가로드되는 즉시 브라우저를 가리 키도록 스크롤합니다. 그래서 엔진이 제공 할 때 노드의 위치를 ​​얻을 가능성이 있다고 생각합니다. [링크] (http://lobobrowser.org/cobra-api/org/lobobrowser/html/HtmlRendererContext.html#)를 볼 수 있습니다. scrollBy (int, % 20int)) – lonesome

+1

자바 구현 된 브라우저가 있다고 질문해야한다고 생각합니다. –

관련 문제