async function processXML() { const input = document.getElementById("xmlInput").value; const outputElement = document.getElementById("output"); if (!input.trim()) { outputElement.innerHTML = "Zadejte XML data pro zobrazení výsledků."; return; } outputElement.innerHTML = '

Zpracovávám data...

'; try { const parser = new DOMParser(); const xmlDoc = parser.parseFromString(input, "text/xml"); // Namespace resolver pro XPath const nsResolver = (prefix) => { const ns = { ns0: "http://www.vodafone.cz/FbbProxy/FbbGuiApi/Interface/v1_0", ns1: "http://www.vodafone.cz/Common/xml/Common" }; return ns[prefix] || null; }; let output = "

Základní informace

"; const returnStatus = xmlDoc.evaluate("//ns1:returnStatus", xmlDoc, nsResolver, XPathResult.STRING_TYPE, null).stringValue; const ticketId = xmlDoc.evaluate("//ns0:ticketId", xmlDoc, nsResolver, XPathResult.STRING_TYPE, null).stringValue; output += `

Status: ${returnStatus || "Neznámý"}

`; output += `

Ticket ID: ${ticketId || "Neznámý"}

`; output += "

Stav linky

"; const dnRate = xmlDoc.evaluate("//OPER/DnRate", xmlDoc, nsResolver, XPathResult.STRING_TYPE, null).stringValue; const upRate = xmlDoc.evaluate("//OPER/UpRate", xmlDoc, nsResolver, XPathResult.STRING_TYPE, null).stringValue; output += `

Rychlost stahování: ${dnRate || "Neznámá"} kbps

`; output += `

Rychlost nahrávání: ${upRate || "Neznámá"} kbps

`; output += "

Zařízení

"; const macElement = xmlDoc.evaluate("//LOG/MAC1", xmlDoc, nsResolver, XPathResult.STRING_TYPE, null).stringValue; if (macElement) { const mac = macElement.split(" ")[0]; output += `

MAC adresa: ${mac}

`; // Kontrola MAC výrobce přes Macvendors try { const vendorResponse = await fetch(`https://api.macvendors.com/${mac}`); const vendor = await vendorResponse.text(); output += `

Výrobce: ${vendor}

`; } catch { output += `

Výrobce: Nepodařilo se zjistit

`; } } else { output += `

MAC adresa: Nenalezena

`; } outputElement.innerHTML = output; } catch (error) { outputElement.innerHTML = "

Chyba při zpracování XML dat. Zkontrolujte správnost formátu.

"; } }