在编写嵌套项时面对Xmlwriter的问题

时间:2013-06-06 19:00:27

标签: xmlwriter

我正在尝试使用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”></div>

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

此代码的输出就是这样产生的。

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

但预期的输出是

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

任何人遇到同样的问题? 有什么建议吗?

1 个答案:

答案 0 :(得分: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决定它是否是/&gt;或&gt;&lt; /&的ElementName GT;或&gt; UnknownStuff&lt; / elementname&gt;,所以如果它有像​​你的控件或冲洗的东西,它不知道如何处理你的控件。 由于它写的最后一件事是属性,它将你的控件视为奇怪的属性。 将控件放在一个可以称为控件或&lt; div> WriteEndElement可能会认为它是一个奇怪的元素。

想象一下,如果您正在撰写WriteEndElement课程,您可以如何制作XMLwriter。 在它的生命周期中它将要处理什么。 它如何认识到它们不再具有属性,因为也许你可以以某种方式欺骗它。

如果你找到一种方法让它运作起来请你回答,因为我知道我已经通过阅读多年的论坛得到了帮助,我一直注意到,通常问题是关于六个口的回答,如果你在做什么的话你可能想过那个时候该做什么。