2012-04-03 4 views
-1

в моей программе, мне нужно получить координату org.w3c.dom.Node node, соответствующую точке на экране, поскольку Dom является уникальной структурой данных html-файла, как это возможно?Координата узла узла

  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» я не хочу, чтобы получить координаты на основе действий мыши, просто интересно, если при передаче DOM обратно в HTML-документ, будет ли возможность использовать коды независимых от входного устройства, чтобы получить позиция, заставляя использовать двигатель im.has функцию, чтобы получить узел или координату точки, затем прокрутите браузер, чтобы указать, как только страница загрузится. Поэтому я подумал, когда двигатель предоставит ее, тогда есть возможность получить Node положение too.here вы можете увидеть link

+0

'узел Node в screen' - да? Что вы имеете в виду? Пожалуйста, перефразируйте свой вопрос, чтобы мы получили достаточно подробностей, чтобы дать ответ. –

+0

@ThorstenDittmar, как сейчас? – lonesome

+0

Хорошо ... так: Что значит «на экране»? Вы показываете XML-файл? Что ты вообще делаешь? Как должен XML-узел (который является просто текстом в текстовом файле) вообще «на экране»? Предоставьте более подробную информацию о том, что вы пытаетесь сделать? –

ответ

1

Это невозможно с SAX-парсера.

SAX-парсер будет анализировать XML-документ, чтобы получить контент в его контексте.

HTML и XML - это разные вещи.

  • HTML - это описание разметки. Он говорит что-то вроде «Это заголовок».
  • XML - это структурное описание контента. Он говорит, что somsing напоминает «есть объект под названием PERSON, у него есть атрибут NAME»

Содержимое HTML не имеет записей. Позиция происходит от механизма рендеринга, который будет генерировать представление для этих данных. Позиционирование выполняется с помощью CSS.

Если вы хотите получить позицию элемента внутри HTML-документа, вам понадобится механизм рендеринга браузера. Вы можете попробовать selenium testdriver.

This article may help.

+0

Вот что я пытался прояснить в течение последних 30 минут или около того - давайте посмотрим, удастся ли вам объяснить невозможность задачи :-) –

+0

Я знаю, что вы имеете в виду, но я не хочу получать координаты основанный на действии мыши, просто задался вопросом, будет ли когда передача DOM обратно в HTML-документ, будет какой-либо шанс использовать коды, не зависящие от устройства ввода, чтобы получить позицию, вызвать двигатель im using.has функцию для получения узла или координата точки, затем прокрутите браузер до пункта, как только страница загрузится. поэтому я подумал, когда двигатель предоставит его, тогда есть возможность получить позицию узла. Здесь вы можете увидеть [link] (http://lobobrowser.org/cobra-api/org/lobobrowser/html/HtmlRendererContext.html# scrollBy (int,% 20int)) – lonesome

+1

Я думаю, вы должны указать в своем вопросе, что у вас есть Java-браузер. –