㈠ java document怎麼用啊
JSP或者HTML中的對象,可以獲取元素並且加以修改,如修改一個ID為xyz的輸入框的內容,就可以這樣:document.getElementById("xyz").value="修改的內容"。具體方法W3C上很多,直接網路 w3cschool,有你需要的資料
㈡ java類中一個document對象doc,要刪除其head節點下的內容返回一個document怎麼實現
document.getElementsByTagName("head")[0].parentNode.removeChild(document.getElementsByTagName("head")[0]);
測試樣例
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<title>test1</title>
</head>
<body>
<scripttype="text/javascript">
document.getElementsByTagName("head")[0].parentNode.removeChild(document.getElementsByTagName("head")[0]);
</script>
<divname="div"id="12263"flag="0">
</body>
</html>
㈢ java中幾種解析html的工具
HTML分析是一個比較復雜的工作,Java世界主要有幾款比較方便的分析工具:
1.Jsoup
Jsoup是一個集強大和便利於一體的HTML解析工具。它方便的地方是,可以用於支持用jQuery中css selector的方式選取元素,這對於熟悉js的開發者來說基本沒有學習成本。
String content = "blabla";
Document doc = JSoup.parse(content);
Elements links = doc.select("a[href]");
Jsoup還支持白名單過濾機制,對於網站防止XSS攻擊也是很好的。
2.HtmlParser
HtmlParser的功能比較完備,也挺靈活,但談不上方便。這個項目很久沒有維護了,最新版本是2.1。HtmlParser的核心元素是Node,對應一個HTML標簽,支持getChildren()等樹狀遍歷方式。HtmlParser另外一個核心元素是NodeFilter,通過實現NodeFilter介面,可以對頁面元素進行篩選。這里有一篇HtmlParser的使用文章:使用 HttpClient 和 HtmlParser 實現簡易爬蟲。
3.Apache tika
tika是專為抽取而生的工具,還支持PDF、Zip甚至是JavaClass。使用tika分析HTML,需要自己定義一個抽取內容的Handler並繼承org.xml.sax.helpers.DefaultHandler,解析方式就是xml標準的方式。crawler4j中就使用了tika作為解析工具。SAX這種流式的解析方式對於分析大文件很有用,我個人倒是認為對於解析html意義不是很大。
4.HtmlCleaner與XPath
HtmlCleaner最大的優點是:支持XPath的方式選取元素。XPath是一門在XML中查找信息的語言,也可以用於抽取HTML元素。XPath與CSS Selector大部分功能都是重合的,但是CSS Selector專門針對HTML,寫法更簡潔,而XPath則是通用的標准,可以精確到屬性值。XPath有一定的學習成本,但是對經常需要編寫爬蟲的人來說,這點投入絕對是值得的。
㈣ JAVA問題:document.getElementById();這名話什麼意思document哪來的屬於誰的
document.getElementById();這個並不是java的語句,這個是javascript的語句。
document是內置對象,不需要聲明和定義,可以在頁面中直接使用。
document.getElementById();這句話的意思是根據id來獲取指定id的控制項對象
比如有一個控制項
<input type="text" name="test" id="test" value="myValue"/>
使用document.getElementById(「test」);就可以獲得上面的input控制項的對象
使用document.getElementById().value;就可以獲得上面input控制項的值即獲得myValue
建議看一下javascript方面的書。
㈤ java 如何把源文件解析為dom
建一個Student實體類封裝數據,我給的是我以前解析的一個跟你的xml結構很像的例子,你只要簡單的改動下就可以了。
publicstaticList<Student>readXml(){
List<Student>list=newArrayList<Student>();
//定義一個dom解析器工廠實例
DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();
try{
//由工廠實例得到一個dom解析器
DocumentBuilderdom=factory.newDocumentBuilder();
//找到xml文檔
Filefile=newFile("src/com/jereh/ch05/Students.xml");
Documentdoc=dom.parse(file);
//
Elementroot=doc.getDocumentElement();
NodeListstuNodeList=root.getChildNodes();
for(inti=0;i<stuNodeList.getLength();i++){
Nodestu=stuNodeList.item(i);
Studentstudent=newStudent();
if(stu!=null&&stu.getNodeType()==Node.ELEMENT_NODE){
//System.out.println(stu);
ElementstuElement=(Element)stu;
student.setNo(stuElement.getAttribute("id"));
//stu.getAttributes().getNamedItem(null);
//Elementstu=(Element)stuNodeList
NodeListinfo=stuElement.getChildNodes();
for(intj=0;j<info.getLength();j++){
info.item(j).getNodeName();
Noden=info.item(j);
if("name".equals(n.getNodeName())){
//n.getFirstChild().getNodeValue();
student.setName(n.getLastChild().getNodeValue());
}elseif("age".equals(n.getNodeName())){
student.setAge(Integer.parseInt(n.getFirstChild()
.getNodeValue()));
}
list.add(student);
}
}
}
}catch(ParserConfigurationExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(SAXExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
//System.out.println(root.getNodeValue());
returnlist;
}