F:\java实例\Java2程序设计150例(源代码)\第十章\实例109>javac DOMTreeWalker.javaF:\java实例\Java2程序设计150例(源代码)\第十章\实例109>java DOMTreeWalker
Exception in thread "main" java.io.FileNotFoundException: F:\java实例\Java2程序
设计150例(源代码)\第十章\实例109\web-app_2.2.dtd (系统找不到指定的文件。)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at java.io.FileInputStream.<init>(FileInputStream.java:66)
at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection
.java:69)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLCon
nection.java:156)
at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown So
urce)
at org.apache.xerces.impl.XMLEntityManager.startEntity(Unknown Source)
at org.apache.xerces.impl.XMLEntityManager.startDTDEntity(Unknown Source
)
at org.apache.xerces.impl.XMLDTDScannerImpl.setInputSource(Unknown Sourc
e)
at org.apache.xerces.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(
Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Un
known Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at DOMTreeWalker.main(DOMTreeWalker.java:95)
Exception in thread "main" java.io.FileNotFoundException: F:\java实例\Java2程序
设计150例(源代码)\第十章\实例109\web-app_2.2.dtd (系统找不到指定的文件。)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at java.io.FileInputStream.<init>(FileInputStream.java:66)
at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection
.java:69)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLCon
nection.java:156)
at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown So
urce)
at org.apache.xerces.impl.XMLEntityManager.startEntity(Unknown Source)
at org.apache.xerces.impl.XMLEntityManager.startDTDEntity(Unknown Source
)
at org.apache.xerces.impl.XMLDTDScannerImpl.setInputSource(Unknown Sourc
e)
at org.apache.xerces.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(
Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Un
known Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at DOMTreeWalker.main(DOMTreeWalker.java:95)
解决方案 »
- 正则表达式判断yyyy-mm-dd格式的字符串
- 关闭java窗体 进程javaw.exe仍然存在
- 恩 绝对菜鸟问题?
- java 控制打印机实现打印 String【】aa 字符串的数据
- Comparator()太难了,谁能用简单的话让我明白阿!!
- 这程序怎么了?为什么显示不出来
- 算法问题,求代码
- jdk环境配置出错!在线等!谢谢!
- 请问大家一个问题,现在有一个父类F,里面用ThreadLocal()对象记录了某个资源(比如Connection),然后有很多类extends这个F,其他的类通
- 这个问题解决了就拿300分了!
- 一个关于eclipse的问题
- 请教一个判断a值为正负的程序(很基础的,别笑我)~
import org.w3c.dom.*;
import org.w3c.dom.traversal.*;
import org.apache.xerces.parsers.*;
import org.xml.sax.*;
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.*;
import java.io.*;public class DOMTreeWalker implements TreeModel {
TreeWalker walker; public DOMTreeWalker(TreeWalker walker) {
this.walker = walker;
} public DOMTreeWalker(Document document) {
DocumentTraversal dt = (DocumentTraversal) document;
walker =
dt.createTreeWalker(document, NodeFilter.SHOW_ALL, null, false);
} public DOMTreeWalker(Element element) {
DocumentTraversal dt = (DocumentTraversal) element.getOwnerDocument();
walker = dt.createTreeWalker(element, NodeFilter.SHOW_ALL, null, false);
} // 返回树的根
public Object getRoot() {
return walker.getRoot();
} // 判断是否为叶子
public boolean isLeaf(Object node) {
walker.setCurrentNode((Node) node);
Node child = walker.firstChild();
return (child == null);
} // 计算该节点的子节点数目
public int getChildCount(Object node) {
walker.setCurrentNode((Node) node);
int numkids = 0;
Node child = walker.firstChild();
while (child != null) {
numkids++;
child = walker.nextSibling(); // 下一个孩子
}
return numkids;
} // 返回节点的指定子节点
public Object getChild(Object parent, int index) {
walker.setCurrentNode((Node) parent);
Node child = walker.firstChild();
while (index-- > 0)
child = walker.nextSibling();
return child;
} // 返回子节点在父节点当中的位置
public int getIndexOfChild(Object parent, Object child) {
walker.setCurrentNode((Node) parent);
int index = 0;
Node c = walker.firstChild();
while ((c != child) && (c != null)) {
index++;
c = walker.nextSibling();
}
return index;
} // 供可修改的树使用的方法,这里没有实现
public void valueForPathChanged(TreePath path, Object newvalue) {
} // 因为这里实现的DOM Tree是不可修改的,所以它不触发任何事件
public void addTreeModelListener(TreeModelListener l) {
}
public void removeTreeModelListener(TreeModelListener l) {
} public static void main(String[] args) throws IOException, SAXException {
//获得用于建立 DOM tree的Xerces parser的对象
// 这里用的是 Apache Xerces APIs
DOMParser parser = new org.apache.xerces.parsers.DOMParser(); // 获得要分析的xml文件
Reader in = new BufferedReader(new FileReader("web.xml"));
InputSource input = new org.xml.sax.InputSource(in); // 开始分析
parser.parse(input); // 从分析器中获得 DOM Document
Document document = parser.getDocument();
DocumentTraversal traversal = (DocumentTraversal) document; // 过滤只含有空格的节点
NodeFilter filter = new NodeFilter() {
public short acceptNode(Node n) {
if (n.getNodeType() == Node.TEXT_NODE) {
if (((Text) n).getData().trim().length() == 0)
return NodeFilter.FILTER_REJECT;
}
return NodeFilter.FILTER_ACCEPT;
}
}; // 设置显示所有节点但不显示内容
int whatToShow = NodeFilter.SHOW_ALL & ~NodeFilter.SHOW_COMMENT; TreeWalker walker =
traversal.createTreeWalker(document, whatToShow, filter, false);
JTree tree = new JTree(new DOMTreeWalker(walker)); // 建立一个窗口和滚动条
JFrame frame = new JFrame("DOMTreeWalker Demo");
frame.getContentPane().add(new JScrollPane(tree));
frame.setSize(500, 250);
frame.setVisible(true);
}
}
我用到的文件是 web.xml而我的默认目录下也有 web.xml
各位大虾,有没有遇到类似的问题,或者直到原因,给俺解答一下。
再此谢过了,
忘了新建 其中用到的dtd