A small package to transverse xml into javascript
import { readFileSync } from "fs";
import parse from "saxxmlparser";
var xml = readFileSync("xml.xml");
parse(xml).then((node) => {
var price = node.resolveNSPath(
"A:envelope/A:body/B:getstockPriceResponsE/B:price",
{
A: "http://www.w3.org/2001/12/soap-envelope",
B: "http://www.example.org/stock",
}
);
console.log(price.value); // Prints 34.5
});
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body xmlns:m="http://www.example.org/stock">
<m:GetStockPriceResponse>
<m:Price>34.5</m:Price>
</m:GetStockPriceResponse>
</soap:Body>
</soap:Envelope>
import { readFileSync } from "fs";
import parse from "saxxmlparser";
var xml = readFileSync("xml.xml");
parse(xml).then((node) => {
var price = node.resolveNSPath(
"A:envelope/A:body/B:getstockPriceResponsE/B:price", // Put the absolute path to the child in here
{
A: "http://www.w3.org/2001/12/soap-envelope",
B: "http://www.example.org/stock",
}
);
console.log(price.value); // Prints 34.5
});
Sometimes when you only want a specific child but the parents or the path does not matter
import { readFileSync } from "fs";
import parse from "saxxmlparser";
var xml = readFileSync("xml.xml");
parse(xml).then((node) => {
// A double slash (//) in front of the search triggers a child search
var price = node.resolveNSPath(
"//B:price", // Put the absolute path to the child in here
{
A: "http://www.w3.org/2001/12/soap-envelope",
B: "http://www.example.org/stock",
}
);
console.log(price.value); // Prints 34.5
});
Sometimes when you only want a specific child but the parents or the path does not matter
import { readFileSync } from "fs";
import parse from "saxxmlparser";
var xml = readFileSync("xml.xml");
parse(xml).then((node) => {
// A double slash (//) in front of the search triggers a child search
var price = node.resolveNSPath(
"//B:GetStockPriceResponse/B:price", // Put the absolute path to the child in here
{
A: "http://www.w3.org/2001/12/soap-envelope",
B: "http://www.example.org/stock",
}
);
console.log(price.value); // Prints 34.5
});
Parses the supplied xml and returns the root node If strict is set to true, the sax parser will be instructed to use strict mode (defaults to true)
parse(xml, strict = true): Promise<XmlNode>