我必须用 java SAX 解析器解析一些 xml。趁着忙,看到这里可以使用状态模式。
定义了清晰的状态和状态转换,类似于 xml 文档的结构。
要实现状态模式,我必须定义一个接口(或抽象类)。最明显的接口方法是:
public void startElement(String elementName);
public void endElement(String elementName);
但是我遇到的问题是如何返回信息。我需要一个结构中的 xml 文档中多个级别的信息。
这是 xml 文档的一部分
<chessboard>
<white>
<king>
<position>
<x>e</x>
<y>1</y>
</position>
</king>
<pawns>
<pawn id="1">
<position>
<x>e</x>
<y>2</y>
</position>
</pawn>
<pawn id="1">
<position>
<x>f</x>
<y>2</y>
</position>
</pawn>
</pawns>
</white>
</chessboard>
我的假设是否正确,即状态模式适合这里?如果是这样,在这里实施它的最佳方法是什么?