Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как распарсить xml (https://javascript.ru/forum/dom-window/78384-kak-rasparsit-xml.html)

misha.korolcov 05.09.2019 10:09

Как распарсить xml
 
++

ksa 05.09.2019 10:48

Цитата:

Сообщение от misha.korolcov
Как распарсить xml

Вот тебе статейка...
https://vk-book.ru/poluchenie-dannyx...oshhyu-jquery/

Malleys 05.09.2019 13:08

misha.korolcov, вы можете для разбора xml-документа использовать класс DOMParser...

<style>

details {
	font: 1em system-ui;
	max-width: 20em;
	margin: 1em auto;
}

details > summary,details > a {
	background: #607D8B;
	color: white;
	padding: 0.5em;
	cursor: pointer;
	border-radius: 5px;
}

details > a {
	display: block;
	width: max-content;
	margin: 0.5em auto;
	text-decoration: none;
}

</style>
<script>

async function getDataFromCnbc() {
	const response = await fetch("https://corsproxy.glitch.me/https://www.cnbc.com/id/10000664/device/rss/rss.html");
	const xml = await response.text();

	const xmlDocument = new DOMParser().parseFromString(xml, "text/xml");

	for(const node of xmlDocument.querySelectorAll("item")) {
		const details = document.createElement("details");
		const summary = document.createElement("summary");
		summary.append(node.querySelector("title"));
		
		const description = document.createElement("description");
		description.innerHTML = node.querySelector("description").textContent;
		
		const link = document.createElement("a");
		link.href = node.querySelector("link").textContent;
		link.textContent = "Read more";
		
		details.append(summary, description, link);
		document.body.append(details);
	}
}

document.addEventListener("DOMContentLoaded", getDataFromCnbc);

</script>

Aetae 05.09.2019 21:34

Если нет .xml() почему б его не зафигачить?)
Response.prototype.xml = async function (type = 'application/xml') {
  return new DOMParser().parseFromString(await this.text(), type)
}
А дальше вместо .json() фигачим .xml().
А ещё можно какую-нить либу xml to json прилепить и вообще не париться.)

misha.korolcov 06.09.2019 00:39

спс парни очень помогли)))


Часовой пояс GMT +3, время: 01:44.