|
@@ -6,7 +6,8 @@ function parseSync(xstr, options) {
|
|
onCdata: _onCdata = dummy,
|
|
onCdata: _onCdata = dummy,
|
|
onComment: _onComment = dummy,
|
|
onComment: _onComment = dummy,
|
|
onProgress: _onProgress = dummy,
|
|
onProgress: _onProgress = dummy,
|
|
- innerCut = new Set()
|
|
|
|
|
|
+ innerCut = new Set(),
|
|
|
|
+ lowerCase = true,
|
|
} = options;
|
|
} = options;
|
|
|
|
|
|
let i = 0;
|
|
let i = 0;
|
|
@@ -91,7 +92,8 @@ function parseSync(xstr, options) {
|
|
} else {
|
|
} else {
|
|
tag = tagData;
|
|
tag = tagData;
|
|
}
|
|
}
|
|
- tag = tag.toLowerCase();
|
|
|
|
|
|
+ if (lowerCase)
|
|
|
|
+ tag = tag.toLowerCase();
|
|
|
|
|
|
if (innerCut.has(tag) && (!cutCounter || cutTag === tag)) {
|
|
if (innerCut.has(tag) && (!cutCounter || cutTag === tag)) {
|
|
if (!cutCounter)
|
|
if (!cutCounter)
|
|
@@ -146,7 +148,8 @@ async function parse(xstr, options) {
|
|
onCdata: _onCdata = dummy,
|
|
onCdata: _onCdata = dummy,
|
|
onComment: _onComment = dummy,
|
|
onComment: _onComment = dummy,
|
|
onProgress: _onProgress = dummy,
|
|
onProgress: _onProgress = dummy,
|
|
- innerCut = new Set()
|
|
|
|
|
|
+ innerCut = new Set(),
|
|
|
|
+ lowerCase = true,
|
|
} = options;
|
|
} = options;
|
|
|
|
|
|
let i = 0;
|
|
let i = 0;
|
|
@@ -231,7 +234,8 @@ async function parse(xstr, options) {
|
|
} else {
|
|
} else {
|
|
tag = tagData;
|
|
tag = tagData;
|
|
}
|
|
}
|
|
- tag = tag.toLowerCase();
|
|
|
|
|
|
+ if (lowerCase)
|
|
|
|
+ tag = tag.toLowerCase();
|
|
|
|
|
|
if (innerCut.has(tag) && (!cutCounter || cutTag === tag)) {
|
|
if (innerCut.has(tag) && (!cutCounter || cutTag === tag)) {
|
|
if (!cutCounter)
|
|
if (!cutCounter)
|
|
@@ -276,7 +280,7 @@ async function parse(xstr, options) {
|
|
await _onProgress(100);
|
|
await _onProgress(100);
|
|
}
|
|
}
|
|
|
|
|
|
-function getAttrsSync(tail) {
|
|
|
|
|
|
+function getAttrsSync(tail, lowerCase = true) {
|
|
let result = {};
|
|
let result = {};
|
|
let name = '';
|
|
let name = '';
|
|
let value = '';
|
|
let value = '';
|
|
@@ -287,14 +291,16 @@ function getAttrsSync(tail) {
|
|
let waitEq = false;
|
|
let waitEq = false;
|
|
|
|
|
|
const pushResult = () => {
|
|
const pushResult = () => {
|
|
- name = name.toLowerCase();
|
|
|
|
|
|
+ if (lowerCase)
|
|
|
|
+ name = name.toLowerCase();
|
|
if (name != '') {
|
|
if (name != '') {
|
|
|
|
+ const fullname = name;
|
|
let ns = '';
|
|
let ns = '';
|
|
- if (name.indexOf(':') >= 0) {
|
|
|
|
- [ns, name] = name.split(':');
|
|
|
|
|
|
+ if (fullname.indexOf(':') >= 0) {
|
|
|
|
+ [ns, name] = fullname.split(':');
|
|
}
|
|
}
|
|
|
|
|
|
- result[name] = {value, ns};
|
|
|
|
|
|
+ result[name] = {value, ns, fullname};
|
|
}
|
|
}
|
|
name = '';
|
|
name = '';
|
|
value = '';
|
|
value = '';
|