-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
59 lines (50 loc) · 1.85 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
const xml = `<soapenv:Envelope xmlns.soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns="urn:enterprise.soap.sforce.com">
<soapenv:Body blo="\${bla > 5 ? dd : ''}" foo.bind='bar'>
<createResponse>
<result>
<id>003D000000OY9omIAD > 5 ? 4 "3"</id>
<success>true</success>
</result>
What does it say ?
<result>
<id>001D000000HTK3aIAH</id>
<success>true</success>
</result>
</createResponse>
</soapenv:Body>
</soapenv:Envelope>`;
// var xmlParser = require("xml-parser")
// var result = xmlParser(xml);
// console.log(result)
var onEventCallback = function (event) {
switch (event.eventType) {
case xmlModule.ParserEventType.StartElement:
var message = event.eventType + " " + event.elementName;
if (event.attributes) {
message += ", Attributes:";
for (var attributeName in event.attributes) {
if (event.attributes.hasOwnProperty(attributeName)) {
message += ` [${attributeName}="${event.attributes[attributeName]}"]`;
}
}
}
console.log(message);
break;
case xmlModule.ParserEventType.EndElement:
console.log(event.eventType + " " + event.elementName);
break;
case xmlModule.ParserEventType.Text:
var significantText = event.data.trim();
if (significantText !== "") {
console.log(event.eventType + "=\"" + significantText + "\"");
}
break;
}
};
var onErrorCallback = function (error) {
console.log("Error: " + error.message);
};
var xmlModule = require("tns-core-modules/xml");
var xmlParser = new xmlModule.XmlParser(onEventCallback, onErrorCallback);
xmlParser.parse(xml);