如何在另一个元素中插入非自闭元素?

时间:2014-05-22 00:39:07

标签: c# xml

我需要在一系列文本中插入一些<wbr>元素。削减一些复杂的代码,这就是关键:

// ... pos contains position of hyphen etc.

brokenTokens.Add(new XText(token.Substring(0, pos)));
brokenTokens.Add(new XElement("wbr"));
brokenTokens.Add(new XText(token.Substring(pos)));

XElement e = new XElement(originalElement.Name, brokenTokens);

除了它产生:

<p xmlns="http://www.w3.org/1999/xhtml">This is some really long, super<wbr xmlns="" />-hypenated text.</p>

我可以弄清楚如何杀死那个令人讨厌的空命名空间声明,但我怎样才能使它成为<wbr>而不是<wbr />

由于

3 个答案:

答案 0 :(得分:1)

您正在研究XML:解决方案是提供<wbr>内容。否则,你必须对自闭元素(在语法上正确)感到满意。

答案 1 :(得分:1)

您可以为wbr元素指定与其父元素相同的命名空间。在这种情况下,不会打印命名空间。

答案 2 :(得分:1)

XML允许

<wbr/>

实现
var element = new XElement("wbr");

<wbr></wbr>

完成

var element = new XElement("wbr", string.Empty);

由于您使用的是XHTML,我甚至认为使用像<wbr>这样的HTML标记不符合XHTML规范。