タグ スタックを備えた SAX パーサーを使用して複雑な XML を解析する方法
標準の SAX 実装を使用する場合の問題は、特に、さまざまなレベルでタグが繰り返される複雑な XML ドキュメントを扱う場合に、XML 構造内の現在の場所がわかります。これに対処するために、タグ スタックの概念を導入しましょう。
タグ スタックを使用した実装
public class Tag { private String name; private int count; // Constructors and other methods }
public class TagStack { private Stack<Tag> stack; // Constructors and other methods }
public class ExampleHandler extends DefaultHandler { private TagStack tagStack; public ExampleHandler() { tagStack = new TagStack(); } @Override public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException { Tag tag = new Tag(localName, 1); tagStack.push(tag); } @Override public void endElement(String uri, String localName, String qName) throws SAXException { Tag tag = tagStack.pop(); if (tag.getCount() > 1) { tag.decCount(); tagStack.push(tag); } } // Other methods... }
タグの利点スタック
使用例
TagStack tagStack = new TagStack(); SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser parser = factory.newSAXParser(); parser.parse(inputStream, new ExampleHandler(tagStack));
タグ スタックを使用すると、XML 構造内の現在の位置を効果的に管理し、複雑な XML ドキュメントを簡単に解析できます。このアプローチは、さまざまな XML シナリオを処理するための堅牢かつ洗練されたソリューションを提供します。
以上がタグ スタックを使用すると、複雑な XML ドキュメントの SAX 解析をどのように簡素化できるでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。