无法使用Javascript渲染XML

问题描述 投票:0回答:2

[尝试将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>

我想不出一个不起作用的原因。但是我可能忽略了其他所有人都可以看到的东西...

javascript xml syntax
2个回答
1
投票

明显的原因是浏览器将您的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
投票

这不是可呈现的代码,因为带有属性的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>
© www.soinside.com 2019 - 2024. All rights reserved.