⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 treeparser.java

📁 Mofire的JAR压缩包
💻 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 + -