コード例 #1
0
            public void endElement(String namespaceURI, String localName, String name)
            {
                String expectedName = (String)_elemNameStack.Peek();

                if (expectedName != name)
                {
                    throw new RuntimeException("close tag mismatch");
                }
                if (matchesPath(0, HEADING_PATH_NAMES))
                {
                    _lastHeadingText       = _textNodeBuffer.ToString().Trim();
                    _textNodeBuffer.Length = (0);
                }
                if (_isInsideTable)
                {
                    if (matchesTargetPath())
                    {
                        _fdc.endTableGroup(_lastHeadingText);
                        _isInsideTable = false;
                    }
                    else if (matchesRelPath(TABLE_ROW_RELPATH_NAMES))
                    {
                        String[] cellData = new String[_rowData.Count];
                        _rowData.ToArray(cellData);
                        _rowData.Clear();
                        Boolean[] noteFlags = new Boolean[_rowNoteFlags.Count];
                        _rowNoteFlags.ToArray(noteFlags);
                        _rowNoteFlags.Clear();
                        ProcessTableRow(cellData, noteFlags);
                    }
                    else if (matchesRelPath(TABLE_CELL_RELPATH_NAMES))
                    {
                        _rowData.Add(_textNodeBuffer.ToString().Trim());
                        _rowNoteFlags.Add((_cellHasNote));
                        _textNodeBuffer.Length = (0);
                    }
                }
                _elemNameStack.Pop();
            }