使用XDocument使用嵌套标记构建XHTML

时间:2012-11-09 14:17:30

标签: .net linq c#-4.0 linq-to-xml

我想使用XDocument(或任何其他类似的库)来生成一些XHTML。不幸的是,嵌套标签最终在同一级别上,而不是彼此之间。有人可以帮我解决这个简单的问题吗?

到目前为止我所拥有的:

var html = new XDocument(
  new XElement("div", new XAttribute("class", "MyTable"),
    new XElement("table",
      new XElement("thead"),
        new XElement("tr"),
          new XElement("th", "Test"))));

这导致以下结果:

<div class="MyTable">
  <table>
    <thead />
    <tr />
    <th>Test</th>
  </table>
</div>

这是我想要实现的布局:

<div class="MyTable">
  <table>
    <thead>
      <tr>
        <th>Test</th>
      </tr>
    </thead>
  </table>
</div>

1 个答案:

答案 0 :(得分:1)

new XDocument(
  new XElement("div", new XAttribute("class", "MyTable"),
    new XElement("table",
      new XElement("thead",
        new XElement("tr",
          new XElement("th", "Test"))))))

查看theadtr上的小括号。除非您希望元素关闭,否则不应关闭它们。我只是把它们移到了最后。