📄 treeparser.java
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space
// Source File Name: TreeParser.java
package org.kxml.kdom;
import java.util.Vector;
import org.kxml.parser.*;
// Referenced classes of package org.kxml.kdom:
// Node, Element
public class TreeParser extends AbstractXmlParser
{
class Position
{
Node node;
StartTag start;
int index;
Position previous;
Position(Node node)
{
index = -1;
this.node = node;
index = 0;
}
Position(Element element, Position prev)
{
index = -1;
node = element;
previous = prev;
start = new StartTag(prev != null ? prev.start : null, element.getNamespace(), element.getName(), element.getAttributes(), element.getChildCount() == 0, false);
start.setPrefixMap(element.getPrefixMap());
}
}
Position current;
ParseEvent next;
public TreeParser(Node node)
{
current = new Position(node);
}
public TreeParser(Element element, boolean skipRoot)
{
current = new Position(element, null);
if (skipRoot)
{
current.index = 0;
current.start = null;
}
}
public ParseEvent read()
{
if (next == null)
peek();
ParseEvent result = next;
next = null;
return result;
}
public ParseEvent peek()
{
if (next == null)
{
int i = current.index++;
Node node = current.node;
if (i < 0)
next = current.start;
else
if (i >= node.getChildCount())
{
if (current.start == null || i > node.getChildCount())
{
next = new ParseEvent(8, null);
} else
{
next = new Tag(16, current.start, current.start.getNamespace(), current.start.getName());
if (current.previous != null)
current = current.previous;
}
} else
{
int type = node.getType(i);
if (type == 4)
{
current = new Position(node.getElement(i), current);
next = peek();
} else
{
next = new ParseEvent(type, (String)node.getChild(i));
}
}
}
return next;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -