| 219 | } |
| 220 | |
| 221 | function readCommentAndCDATA(xmlData, i) { |
| 222 | if (xmlData.length > i + 5 && xmlData[i + 1] === '-' && xmlData[i + 2] === '-') { |
| 223 | //comment |
| 224 | for (i += 3; i < xmlData.length; i++) { |
| 225 | if (xmlData[i] === '-' && xmlData[i + 1] === '-' && xmlData[i + 2] === '>') { |
| 226 | i += 2; |
| 227 | break; |
| 228 | } |
| 229 | } |
| 230 | } else if ( |
| 231 | xmlData.length > i + 8 && |
| 232 | xmlData[i + 1] === 'D' && |
| 233 | xmlData[i + 2] === 'O' && |
| 234 | xmlData[i + 3] === 'C' && |
| 235 | xmlData[i + 4] === 'T' && |
| 236 | xmlData[i + 5] === 'Y' && |
| 237 | xmlData[i + 6] === 'P' && |
| 238 | xmlData[i + 7] === 'E' |
| 239 | ) { |
| 240 | let angleBracketsCount = 1; |
| 241 | for (i += 8; i < xmlData.length; i++) { |
| 242 | if (xmlData[i] === '<') { |
| 243 | angleBracketsCount++; |
| 244 | } else if (xmlData[i] === '>') { |
| 245 | angleBracketsCount--; |
| 246 | if (angleBracketsCount === 0) { |
| 247 | break; |
| 248 | } |
| 249 | } |
| 250 | } |
| 251 | } else if ( |
| 252 | xmlData.length > i + 9 && |
| 253 | xmlData[i + 1] === '[' && |
| 254 | xmlData[i + 2] === 'C' && |
| 255 | xmlData[i + 3] === 'D' && |
| 256 | xmlData[i + 4] === 'A' && |
| 257 | xmlData[i + 5] === 'T' && |
| 258 | xmlData[i + 6] === 'A' && |
| 259 | xmlData[i + 7] === '[' |
| 260 | ) { |
| 261 | for (i += 8; i < xmlData.length; i++) { |
| 262 | if (xmlData[i] === ']' && xmlData[i + 1] === ']' && xmlData[i + 2] === '>') { |
| 263 | i += 2; |
| 264 | break; |
| 265 | } |
| 266 | } |
| 267 | } |
| 268 | |
| 269 | return i; |
| 270 | } |
| 271 | |
| 272 | const doubleQuote = '"'; |
| 273 | const singleQuote = "'"; |