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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
| <!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8" />
<title>Conversion VB -> JS</title>
</head>
<body>
<button>Action</button>
<script> "use strict";
const GABARIT_URL = "../../../bloc_gabarit.idms";
// fonction `async` pour pouvoir utiliser `await`
async function main() {
// variables
let tableauValeurs = [
"uneImageCarte.png", "42,00", "c'est un très produit", "uneImage.jpg",
"Willy-Waller 2006", "ww06/5000 pièce", "Pepsico"
];
let i = 0;
// obtention du XML brut avec `fetch`
let response = await fetch(GABARIT_URL);
if (!response.ok) {
console.log(`Request failed: ${response.status} ${response.statusText}`);
}
else {
let text = await response.text();
// création de larbre XML à partir du texte brut
let parser = new DOMParser();
let xmlDoc = parser.parseFromString(text, "text/xml");
////////// Choix 1 : XPath, la voie difficile //////////////////////////////
/*
// définition dune liste de nuds correspondant à un paramètre XPath
// voir https://developer.mozilla.org/fr/docs/Web/API/Document/evaluate
let contents = xmlDoc.evaluate(
".//Content",
xmlDoc,
null,
XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
null
);
console.log(contents);
// affichage du contenu de chaque nud
let length = contents.snapshotLength;
for (let i = 0; i < length; i++) {
let content = contents.snapshotItem(i);
console.log(content.textContent);
content.textContent = tableauValeurs[i];
}
*/
////// Choix 2 : querySelectorAll, plus simple /////////////////////////////
// définition dune liste de nuds correspondant à une expression CSS
let contents = xmlDoc.querySelectorAll("Content");
console.log(contents);
// affichage du contenu de chaque nud
for (let content of contents) {
console.log(content.textContent);
content.textContent = tableauValeurs[i];
i = i + 1;
}
///////////// Fin choix ////////////////////////////////////////////////////
// visualisation du XML modifié
let serializer = new XMLSerializer();
let xmlString = serializer.serializeToString(xmlDoc);
let blob = new Blob([ xmlString ], { type: "text/xml" });
let blobURL = URL.createObjectURL(blob);
let $a = document.createElement("a");
$a.target = "_blank";
$a.href = blobURL;
document.body.append($a);
$a.click();
$a.remove();
URL.revokeObjectURL(blob);
// xmlDoc.Save -> impossible à convertir, JS na pas accès au système de fichiers
// Console.ReadLine -> je ne sais pas à quoi sert cet appel ici
}
}
document.querySelector("button").addEventListener("click", () => {
main();
});
</script>
</body>
</html> |
Partager