㈠ 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;
}