请问通过dom4j是不是不能采用sax方式解析xml,就是基于事件的那种方式
答案:3 悬赏:70
解决时间 2021-02-12 22:17
- 提问者网友:西路不相离
- 2021-02-12 09:59
请问通过dom4j是不是不能采用sax方式解析xml,就是基于事件的那种方式
最佳答案
- 二级知识专家网友:恕我颓废
- 2021-02-12 10:18
dom4j也有sax的解析方式的 , 具体请看如下代码 ;
public static void ReadXMLBySAX() throws DocumentException
{
List list;
File f = new File("hope.xml");
SAXReader reader = new SAXReader();
Document doc = reader.read(f); // read(File file);Reads a Document from the given File
// 读取内容
list = doc.selectNodes("//content");
Iterator i_content = list.iterator();
if (i_content.hasNext())
{
Element element = (Element) i_content.next();
String content = element.getText();
System.out.println("内容是:" + content);
}
// 读取标题和时间
list = doc.selectNodes("//attr/@name");
if (list != null) {
Iterator iter = list.iterator();
while (iter.hasNext())
{
Attribute attribute = (Attribute) iter.next();
if (attribute.getValue().equals("标题"))
{
System.out.println("标题:" + attribute.getParent().getText());
break;
}
}
}
}
public static void ReadXMLBySAX() throws DocumentException
{
List list;
File f = new File("hope.xml");
SAXReader reader = new SAXReader();
Document doc = reader.read(f); // read(File file);Reads a Document from the given File
// 读取内容
list = doc.selectNodes("//content");
Iterator i_content = list.iterator();
if (i_content.hasNext())
{
Element element = (Element) i_content.next();
String content = element.getText();
System.out.println("内容是:" + content);
}
// 读取标题和时间
list = doc.selectNodes("//attr/@name");
if (list != null) {
Iterator iter = list.iterator();
while (iter.hasNext())
{
Attribute attribute = (Attribute) iter.next();
if (attribute.getValue().equals("标题"))
{
System.out.println("标题:" + attribute.getParent().getText());
break;
}
}
}
}
全部回答
- 1楼网友:不服输的倔强
- 2021-02-12 12:23
//你的xml文档要加根元素,以下代码我在xml文件中加了根元素
import java.io.file;
import java.util.list;
import org.dom4j.document;
import org.dom4j.documentexception;
import org.dom4j.element;
import org.dom4j.io.saxreader;
public class main {
public static void main(string[] args) {
saxreader saxreader = null;
document doc = null;
try {
saxreader = new saxreader();
doc = saxreader.read(new file("./ss.xml"));
list list = doc.selectnodes("//root//cdc//cdcentry//items//cdcentryitem");
for (element cdcentryitem : list) {
string key = cdcentryitem.elementtexttrim("key");
if("bankmessage".equals(key)) {
system.out.println(cdcentryitem.elementtexttrim("value"));
return;
}
}
} catch (documentexception e) {
}
}
}
- 2楼网友:茫然不知崩溃
- 2021-02-12 11:44
可以实现ElementHandler接口,
SAXReader sax = new SAXReader();
sax.addHandler()把你的实现类添加进来,对xml操作
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯