У меня есть XDocument, который я хочу записать в файл (указанный ниже под комментарием "// XDocument"), но как только я использую свой метод записи, который написан ниже под комментарием "// writing method", я получилнеполное окончание, например "</>
" вместо полного окончания, например "</script>"
. Мне нужно как-то это исправить.
Мой код:
private static void Execute()
{
string outputXMLFile = outputXMLFile = @"C:\Temp\testPoints6.html";
//XDocument
XDocument documentElement =
new XDocument(
new XDeclaration(
"1.0",
Encoding.Default.ToString(), null
)
,
new XDocumentType(
"html", null, null, null
));
XElement html = new XElement("html");
XElement head = new XElement("head");
html.Add(new XAttribute("lang", "ru"));
head.Add(
new XElement("title",
"Exported X3DOM Scene"));
head.Add(
new XElement("meta",
new XAttribute("http-equiv", "X-UA-Compatible"),
new XAttribute("content", "chrome=1")));
head.Add(
new XElement("meta",
new XAttribute("http-equiv", "Content-Type"),
new XAttribute("content", "text/html;charset=utf-8")));
head.Add(
new XElement("link",
new XAttribute("rel", "stylesheet"),
new XAttribute("type", "text/css"),
new XAttribute("href", "http://www.x3dom.org/x3dom/release/x3dom.css")));
head.Add(
new XElement("script",
new XAttribute("type", "text/javascript"),
new XAttribute("src", "http://www.x3dom.org/x3dom/release/x3dom.js")
));
html.Add(head);
documentElement.Add(html);
//writing method
XmlWriterSettings xws = new XmlWriterSettings();
xws.Encoding = Encoding.Default;
xws.Indent = true;
xws.NewLineOnAttributes = true;
using ( XmlWriter xw = XmlWriter.Create(outputXMLFile, xws) ) {
documentElement.WriteTo(xw);
xw.Flush();
}
}
Вывод:
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE html >
<html
lang="ru">
<head>
<title>Exported X3DOM Scene</title>
<meta
http-equiv="X-UA-Compatible"
content="chrome=1" />
<meta
http-equiv="Content-Type"
content="text/html;charset=utf-8" />
<link
rel="stylesheet"
type="text/css"
href="http://www.x3dom.org/x3dom/release/x3dom.css" />
<script
type="text/javascript"
src="http://www.x3dom.org/x3dom/release/x3dom.js" />
</head>
</html>
Поэтому мне нужен этот XmlWriter для записи "<script> </script>
" в мой файл вместо "<script .../>
", что неверно и вызывает некоторые проблемы при запуске его в моем браузере
Я взял "решение "включить закрывающий тег из этого поста:" Как заставить принудительно закрывать тег с помощью Linq XML?", но, похоже, он не работает