Ace: XML рдореЛрдб рдореЗрдореЛрд░реА рд▓реАрдХ рдХреНрд░реИрд╢

рдХреЛ рдирд┐рд░реНрдорд┐рдд 14 рдЕрдЧре░ 2018  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: ajaxorg/ace

рдПрдХреНрд╕рдПрдордПрд▓ рдореЛрдб рдореЗрдВ рд╡рд░реНрдгреЛрдВ рдХреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреНрд░рдо рдХреЛ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рд╕реЗ рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡/рдЕрдирдВрдд рд▓реВрдк рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЕрдВрддрддрдГ рдкреГрд╖реНрда рдХреЛ рдХреНрд░реИрд╢ рдХрд░ рджреЗрддрд╛ рд╣реИред рдкреНрд░рдЬрдирди рдХрд░рдирд╛:

  1. https://ace.c9.io/build/kitchen-sink.html . рдкрд░
  2. рдореЛрдб рдХреЛ XML рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ
  3. рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рд╕рд╛рдордЧреНрд░реА рд╣рдЯрд╛рдПрдВ
  4. рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ: <A><![CDATA[</A>
  5. рдореЗрдореЛрд░реА рд▓реАрдХ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд░реЛрдо рдбреАрдмрдЧрд░ рдХрд╛ рдореЗрдореЛрд░реА рдЯреИрдм рджреЗрдЦреЗрдВред рдкреЗрдЬ рдЬрд▓реНрдж рд╣реА рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рдПрдЧрд╛ (рдЗрд╕рдореЗрдВ рдореБрдЭреЗ рд▓рдЧрднрдЧ 45 рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВ)ред

рдпрд╣ рдмрдЧ рдРрд╕ рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдореМрдЬреВрдж рд╣реИ, рдФрд░ рдХрдо рд╕реЗ рдХрдо рдРрд╕ 1.2.3 рддрдХред
рдХреНрд░реЛрдо рдореЗрдВ рд╡рд┐рдВрдбреЛрдЬ 7 рдФрд░ 10 рдкрд░ рдХреНрд░реИрд╢ред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдХреЗрд╡рд▓ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП, рдЕрдиреНрдп рд╕рд╛рдордЧреНрд░реА рд╣реИ рдЬреЛ рд╕рдорд╛рди рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддреА рд╣реИред https://ace.c9.io/build/kitchen-sink.html рдкрд░ <?p рдЯрд╛рдЗрдк рдХрд░реЗрдВред рдХреБрдЫ рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдлрд╛рд░реА, рдХреНрд░реЛрдо, рдПрдлрдПрдл - рд╕рднреА рд╕рдорд╛рдиред

рд╕рднреА 4 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЗрд╕ рд▓рд╛рдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣рдЪрд╛рдирд╛ рд╣реИ: https://github.com/ajaxorg/ace/blob/dbdf8aaad697e2ded8fd69249b72a7e898583afa/lib/ace/mode/xml/sax.js#L479

end -1 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ "]]>" рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рдЗрд╕рд╕реЗ рд░рд┐рдЯрд░реНрди рд╡реИрд▓реНрдпреВ 2 рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЕрдирдВрдд рд▓реВрдк рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдРрд╕ рд╕рдВрдкрд╛рджрдХ рд╕реЗ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЕрдкрд░рд┐рдЪрд┐рдд рд╣реВрдБред рдореБрдЭреЗ рдПрдХ рдЖрд╕рд╛рди рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛:

var end = source.indexOf(']]>',start+9);
if (end < 0) {
  return -1;
}

рдПрдХ рдЫреЛрдЯреА рд╕реА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЯреВрдЯреА рд╣реБрдИ рд╕реАрдбреАрдПрдЯреАрдП [рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдмрд╛рдж рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЯреЛрдХрди рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдЦреЛ рджреЗрддреЗ рд╣реИрдВред рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╣рдо рдХрд┐рд╕реА рддрд░рд╣ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░ рд╕рдХреЗрдВред

sax.js рдПрдХ рддреГрддреАрдп рдкрдХреНрд╖ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓рд╛рдЗрдирд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЖрдкрдХреЛ рдЗрд╕рдореЗрдВ рдорд┐рд▓реА рдмрдЧ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдореЗрдВ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬрд╝ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕реЗ https://www.npmjs.com/package/xmlchecker рдпрд╛ http://syssgx.github.io/xml.js/

рдПрдХ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ https://github.com/lddubeau/saxes
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрдИ рдЦреБрд▓реЗ рдПрдХреНрд╕рдПрдордПрд▓ рдмрдЧ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ

рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдПрдХреНрд╕рдПрдордПрд▓ рдореЛрдб рд▓рд╛рдЗрдирд┐рдВрдЧ рдПрдХ рдПрдХреНрд╕рдПрдордПрд▓ рдЦрдВрдб рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдп рд╣реИ рдЬреЛ рдПрдХ рдПрдХреНрд╕рдПрдордПрд▓ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдирд╣реАрдВ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
just some text
рддрдерд╛
<foo/><foo/>
рд╡реИрдз рдПрдХреНрд╕рдПрдордПрд▓ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рдбрд┐рдЬрд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рд╣реИ?

рдореИрдВрдиреЗ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ saxes рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрддреНрддрд░ рдкреГрд╖реНрда рдПрдХ рд╕рд╛рде рд░рдЦрд╛
https://repl.it/@apb2006/xml -parser-saxes-test

рдХреЗрд╡рд▓ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП, рдЕрдиреНрдп рд╕рд╛рдордЧреНрд░реА рд╣реИ рдЬреЛ рд╕рдорд╛рди рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддреА рд╣реИред https://ace.c9.io/build/kitchen-sink.html рдкрд░ <?p рдЯрд╛рдЗрдк рдХрд░реЗрдВред рдХреБрдЫ рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдлрд╛рд░реА, рдХреНрд░реЛрдо, рдПрдлрдПрдл - рд╕рднреА рд╕рдорд╛рдиред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

RickStrahl picture RickStrahl  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

vbguyny picture vbguyny  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

narraressan picture narraressan  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

dimroc picture dimroc  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jakub-zawislak picture jakub-zawislak  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ