La función loadXML() se usa para leer el contenido de un archivo o URL y devolverlo como un objeto XML. El archivo debe estar presente en el directorio del boceto para poder acceder. Este método se puede utilizar para admitir tamaños de archivo de hasta 64 MB.
Esta función es asíncrona, por lo que se recomienda llamarla en la función preload() para asegurarse de que la función se ejecute antes que las otras funciones.
Sintaxis:
loadXML(filename, callback, errorCallback )
Parámetros: esta función acepta tres parámetros, como se mencionó anteriormente y se describe a continuación:
- nombre de archivo: esta es una string que indica la ruta del archivo o la URL desde donde se deben cargar los datos XML.
- devolución de llamada: esta es una función que se llama cuando esta función se ejecuta con éxito. El primer argumento de esta función son los datos XML cargados desde el archivo. Es un parámetro opcional.
- errorCallback: esta es una función a la que se llama si hay algún error al ejecutar la función. El primer argumento para esta función es la respuesta de error. Es un parámetro opcional.
Los siguientes ejemplos ilustran la función loadXML() en p5.js:
Ejemplo 1:
/* == Contents of books.xml == <book> <name>The Adventures of Sherlock Holmes: Part One</name> <author>Arthur Conan Doyle</author> <price>323</price> <genre>Detective fiction</genre> </book> */ let loadedXML = null; function setup() { createCanvas(500, 200); textSize(22); text("Click on the button below to " + "load XML from file", 20, 20); // Create a button for loading the XML loadBtn = createButton("Load XML from file"); loadBtn.position(30, 50) loadBtn.mousePressed(loadXMLFile); } function loadXMLFile() { // Load the XML from file loadedXML = loadXML('books.xml', onFileload); } function onFileload() { text("XML loaded successfully...", 30, 100); let book = loadedXML.getChildren(); // Get the content of the tags let name = book[0].getContent(); let author = book[1].getContent(); let price = book[2].getContent(); let genre = book[3].getContent(); text("Name: " + name, 30, 140); text("Author: " + author, 30, 160); text("Price: " + price, 30, 180); text("Genre: " + genre, 30, 200); }
Producción:
Ejemplo 2:
/* == Contents of movies.xml == <movies> <movie year="1972" director="Francis Ford Coppola"> The Godfather </movie> <movie year="1939" director="Victor Fleming"> The Wizard of Oz </movie> <movie year="1941" director="Orson Welles"> Citizen Kane </movie> </movies> */ let loadedXML = null; function setup() { createCanvas(500, 450); textSize(22); text("Click on the button below to " + "load XML from file", 20, 20); // Create a button for loading the XML loadBtn = createButton("Load XML from file"); loadBtn.position(30, 50) loadBtn.mousePressed(loadXMLFile); } function loadXMLFile() { // Load the XML from file loadedXML = loadXML('movies.xml', onFileload); } function onFileload() { // Get the children with the "movie" tag let children = loadedXML.getChildren('movie'); for (let i = 0; i < children.length; i++) { // Get the content of the tag let name = children[i].getContent(); // Get a numerical attribute let year = children[i].getNum('year'); // Get a string attribute let director = children[i].getString('director'); text("Name: " + name, 30, 100 + i * 80); text("Year: " + year, 30, 120 + i * 80); text("Director: " + director, 30, 140 + i * 80); } }
Producción:
Editor en línea: https://editor.p5js.org/
Configuración del entorno: https://www.geeksforgeeks.org/p5-js-soundfile-object-installation-and-methods/
Referencia: https://p5js.org/reference/#/p5/loadXML
Publicación traducida automáticamente
Artículo escrito por sayantanm19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA