Изменить элемент css класс на основе xml значения файла - PullRequest
0 голосов
/ 06 марта 2020

Это вообще возможно? Никогда раньше не пытался и не пытался сделать что-то подобное, я понятия не имею, с чего начать.

У меня есть локальный файл, который при нажатии кнопки вручную обновляет xml файл, изменяющий

<status>live<\status> 
to 
<status>killed<\status>

У меня также есть страница HTML, на которой есть фреймы Iframes, извлекающие каналы в реальном времени для IP-камер. Я хочу скрыть iframe и вместо этого показать графическое изображение c, когда статус «убит».

Кто-нибудь знает, возможно ли это и с чего я начну? Каким-то образом проверяйте файл xml регулярно или как-то узнайте, что он обновлен.

Затем каким-то образом примените классы или добавьте элементы, такие как div, для маскировки iframe.

1 Ответ

0 голосов
/ 06 марта 2020

Да, вы можете работать с XML в JavaScript почти так же, как если бы вы работали с HTML. Однако без серверного компонента запись документа xml обратно в файловую систему будет невозможна. Вы всегда можете скачать его для пользователя, но не можете записать напрямую в файловую систему.

Вот простой пример обновления документа XML с помощью JS. Я поместил строку xml и логи c для разбора строки в xml do c в примере, так как я не уверен, какие у вас настройки.

const xmlString = `
<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>
`;
const xmlDoc = new DOMParser().parseFromString(xmlString, 'text/xml');

document.getElementById('btn').addEventListener('click', e => {
  const to = xmlDoc.querySelector('note to');
  to.innerHTML = 'Someone New';
  console.log('The TO field is now ', xmlDoc.querySelector('note to').innerHTML);
  
  // Set HTML Element from XML
  const h1 = document.getElementById('fromXml');
  h1.innerText = xmlDoc.querySelector('note heading').innerHTML;
});
<button id="btn">Set To</button>
<h1 id="fromXml"></h1>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...