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

本文关键字:元素 自闭 插入 另一个 | 更新日期: 2023-09-27 18:04:27

我需要在文本中插入一些<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 />呢?

谢谢

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

XML允许

<wbr/>

通过

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

<wbr></wbr>

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

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

您正在处理XML:解决方案是给<wbr>内容。否则,您必须满足于自关闭元素(语法正确)。

您可以为wbr元素赋予与其父元素相同的名称空间。在这种情况下,命名空间将不被打印。