MCPcopy Create free account
hub / github.com/NaturalIntelligence/fast-xml-parser / readCommentAndCDATA

Function readCommentAndCDATA

src/validator.js:221–270  ·  view source on GitHub ↗
(xmlData, i)

Source from the content-addressed store, hash-verified

219}
220
221function 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
272const doubleQuote = '"';
273const singleQuote = "'";

Callers 1

validateFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected