Невозможно отобразить XML с помощью Javascript - PullRequest
0 голосов
/ 24 октября 2019

При попытке сохранить XML в переменных, а затем отобразить его, ничего не отображается.

Пример данных XML-строки: <?xml version="1.0" encoding="UTF-8"?>

В приведенном ниже сценарии отображается testvar1, но не testvar2.

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
</head>
<body>
    <div id="target"></div>
<script>
    var testvar1 = "balls";
    var testvar2 = `<?xml version="1.0" encoding="UTF-8"?>`;
    document.getElementById("target").innerHTML = testvar1 + testvar2;
</script>
</body>
</html>

Я не могуПридумайте причину, по которой это не сработает. Но я, наверное, упускаю из виду то, что очевидно для всех остальных ...

Ответы [ 2 ]

1 голос
/ 24 октября 2019

Очевидная причина в том, что браузер интерпретирует ваш XML как допустимые теги и пытается отобразить элементы вашего XML. Если вы хотите отобразить чистый XML для пользователя, используйте свойство textContent вместо innerHTML:

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
</head>
<body>
    <div id="target"></div>
<script>
    var testvar1 = "balls";
    var testvar2 = `<?xml version="1.0" encoding="UTF-8"?>`;
    document.getElementById("target").textContent = testvar1 + testvar2;
</script>
</body>
</html>
0 голосов
/ 24 октября 2019

Это не тот код, который можно отобразить, поскольку тег XML с атрибутами не может быть отображен браузером.

<?xml version="1.0" encoding="UTF-8"?>

Если вы хотите его отобразить, вы должны пропустить теги HTML, например:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
  </head>
  <body>
    <div id="target"></div>
    <script>
      var testvar1 = "balls";
      var testvar2 = `&lt;?xml version="1.0" encoding="UTF-8"?&gt;`;
      document.getElementById("target").innerHTML = testvar1 + testvar2;
    </script>
  </body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...