public capex.text.XMLParser.Value peek() { if (nextQueue != null) { return(nextQueue); } nextQueue = next(); return(nextQueue); }
public capex.text.XMLParser.Value next() { if (nextQueue != null) { var v = nextQueue; nextQueue = null; return(v); } var pos = currentPosition; while (it.hasEnded() == false) { var cbp = currentPosition; var nxb = getNextChar(); if (nxb < 1) { continue; } if (tag != null) { if (nxb == '>') { var ts = tag.toString(); tag = null; return(onTagString(ts, pos)); } tag.append(nxb); if (nxb == '[' && tag.count() == cape.String.getLength(cdataStart) && cape.String.equals(cdataStart, tag.toString())) { tag = null; cdata = new cape.StringBuilder(); } else if (nxb == '-' && tag.count() == cape.String.getLength(commentStart) && cape.String.equals(commentStart, tag.toString())) { tag = null; comment = new cape.StringBuilder(); } } else if (cdata != null) { var c0 = nxb; var c1 = ' '; var c2 = ' '; if (c0 == ']') { c1 = getNextChar(); if (c1 == ']') { c2 = getNextChar(); if (c2 == '>') { var dd = cdata.toString(); cdata = null; var v1 = new capex.text.XMLParser.CharacterData(); v1.setPosition(pos); v1.setData(dd); return((capex.text.XMLParser.Value)v1); } else { moveToPreviousChar(); moveToPreviousChar(); cdata.append(c0); } } else { moveToPreviousChar(); cdata.append(c0); } } else { cdata.append(c0); } } else if (comment != null) { var c01 = nxb; var c11 = ' '; var c21 = ' '; if (c01 == '-') { c11 = getNextChar(); if (c11 == '-') { c21 = getNextChar(); if (c21 == '>') { var ct = comment.toString(); comment = null; var v2 = new capex.text.XMLParser.Comment(); v2.setPosition(pos); v2.setText(ct); return((capex.text.XMLParser.Value)v2); } else { moveToPreviousChar(); moveToPreviousChar(); comment.append(c01); } } else { moveToPreviousChar(); comment.append(c01); } } else { comment.append(c01); } } else if (nxb == '<') { if (def != null) { var cd = def.toString(); def = null; if (ignoreWhiteSpace && cd != null) { if (isOnlyWhiteSpace(cd)) { cd = null; pos = cbp; } } if (cd != null) { moveToPreviousChar(); var v3 = new capex.text.XMLParser.CharacterData(); v3.setPosition(pos); v3.setData(cd); return((capex.text.XMLParser.Value)v3); } } tag = new cape.StringBuilder(); } else { if (def == null) { def = new cape.StringBuilder(); } def.append(nxb); } } return(null); }
private capex.text.XMLParser.Value onTagString(string tagstring, int pos) { if (cape.String.charAt(tagstring, 0) == '/') { var v = new capex.text.XMLParser.EndElement(); v.setPosition(pos); v.setName(cape.String.subString(tagstring, 1)); return((capex.text.XMLParser.Value)v); } var element = new cape.StringBuilder(); var @params = new cape.DynamicMap(); var it = new cape.CharacterIteratorForString(tagstring); var c = ' '; while ((c = it.getNextChar()) > 0) { if (c == ' ' || c == '\t' || c == '\n' || c == '\r' || c == '/') { if (element.count() > 0) { break; } } else { element.append(c); } } while (c > 0 && c != '/') { var pname = new cape.StringBuilder(); var pval = new cape.StringBuilder(); while (c == ' ' || c == '\t' || c == '\n' || c == '\r') { c = it.getNextChar(); } while (c > 0 && c != ' ' && c != '\t' && c != '\n' && c != '\r' && c != '=') { pname.append(c); c = it.getNextChar(); } while (c == ' ' || c == '\t' || c == '\n' || c == '\r') { c = it.getNextChar(); } if (c != '=') { ; } else { c = it.getNextChar(); while (c == ' ' || c == '\t' || c == '\n' || c == '\r') { c = it.getNextChar(); } if (c != '\"') { ; while (c > 0 && c != ' ' && c != '\t' && c != '\n' && c != '\r') { pval.append(c); c = it.getNextChar(); } while (c == ' ' || c == '\t' || c == '\n' || c == '\r') { c = it.getNextChar(); } } else { c = it.getNextChar(); while (c > 0 && c != '\"') { pval.append(c); c = it.getNextChar(); } if (c != '\"') { ; } else { c = it.getNextChar(); } while (c == ' ' || c == '\t' || c == '\n' || c == '\r') { c = it.getNextChar(); } } } var pnamestr = pname.toString(); var pvalstr = pval.toString(); @params.set(pnamestr, (object)pvalstr); } var els = element.toString(); if (c == '/') { var e = new capex.text.XMLParser.EndElement(); e.setName(els); e.setPosition(pos); nextQueue = (capex.text.XMLParser.Value)e; } var v1 = new capex.text.XMLParser.StartElement(); v1.setPosition(pos); v1.setName(els); v1.setParams(@params); return((capex.text.XMLParser.Value)v1); }