0

我正在尝试使用 Xmlwriter 生成 HTML 输出,并遇到了 HTML 未按预期生成的问题。

我的代码看起来像这样。

writer.WriteStartElement("div");
writer.WriteAttributeString("class", "test");
writer.Flush();

 //Load other control which write to same stream.
 //other control generate o/p like this <div id=”other control”&gt;</div>

writer.WriteFullEndElement();
writer.Flush();

此代码的输出是这样生成的。

<div class="test" 
   <div id=”other control”&gt;</div>
></div>

但预期的输出是

<div class="test">
   <div id=”other control”&gt;</div>
</div>

有人遇到过同样类型的问题吗?有什么建议么 ?

4

1 回答 1

0

编程新手,所以不确定

//writer.Flush(); //if you need a flush to come before your control

writer.WriteStartElement("div");

writer.WriteStartAttribute("class");

writer.WriteValue("test"); // OR writer.WriteString("test");

writer.WriteEndAttribute(); //perhaps this way is handled differently. 

writer.WriteStartElement("control");// with no attributes to confuse it you might want to name it div

//then your other control stuff

writer.WriteEndElement();// end of the control element 

writer.WriteEndElement();// end of the div.

writer.Flush();

我认为它WriteEndElement决定了它是 /> 还是 >< /elementname> 或 >UnknownStuff</ elementname>,所以如果它有类似你的控件或者可能是刷新的东西,它不知道如何处理你的控件。因为它写的最后一件事是一个属性,所以它把你的控件视为一个看起来很奇怪的属性。通过将控件放置在可以称为 control 或 < div > 的元素中,WriteEndElement 可能会认为它是一个看起来很奇怪的元素。

想象一下,WriteEndElement如果你正在写这XMLwriter门课,你会怎么做。它将在其生命周期中处理什么。它如何认识到它们不再是属性,因为也许你可以以某种方式欺骗它。

如果你找到了让它工作的方法,请提出你的答案,因为我知道我已经通过阅读多年的论坛得到了帮助,而且我注意到通常问题是回答大约六个嘴,如果你在做任何你可能想到的事情到那个时候该做什么。

于 2013-07-28T04:07:22.060 回答