private void processNodeTag(Attributes attributes) {
            byte[] node = null;
            long lastTS = 0;
            short lastClockSeq = 0;
            for (int i = 0; i < attributes.getLength(); i++) {
                String attributeName = attributes.getLocalName(i);
                if ("".equals(attributeName)) {
                    attributeName = attributes.getQName(i);
                }
                String attributeValue = attributes.getValue(i);

                if (attributeName.equalsIgnoreCase(ATTR_ID_STR)) {
                    node = StateHelper.decodeMACAddress(attributeValue);
                } else if (attributeName.equalsIgnoreCase(ATTR_CLOCKSEQ_STR)) {
                    try {
                        lastClockSeq = Short.parseShort(attributeValue);
                    } catch (NumberFormatException nfe) {
                        lastClockSeq = 0;
                    }
                } else if ( attributeName.equalsIgnoreCase(ATTR_LASTIMESTAMP_STR)) {
                    try {
                        lastTS = Long.parseLong(attributeValue);
                    } catch (NumberFormatException nfe) {
                        lastTS = 0;
                    }
                }
            }
            if (node != null) {
                if (lastClockSeq != 0) {
                    nodes.add(new Node(node, lastTS, lastClockSeq));
                } else {
                    nodes.add(new Node(node));
                }
            }
        }