我正在使用xlinq进行一些变换,其中一些变换可能导致在文档中留下空元素.
完成所有这些转换后,如何查询xdocument中的所有空元素?
换一种说法; 如果我删除了<a>碰巧是<li>标签内唯一元素的所有标签,我该如何删除空标签<li>?
之前:
XDocument.Parse(@"<body>
<ul><li><a href="#">Joy</a></li></ul>
<p>Hi.</p>
</body>").Descendants("a").Remove();
Run Code Online (Sandbox Code Playgroud)
后:
<body>
<ul><li/></ul>
<p>Hi.</p>
</body>
Run Code Online (Sandbox Code Playgroud)
我会比较喜欢:
<body>
<p>Hi.</p>
</body>
Run Code Online (Sandbox Code Playgroud)
Min*_*ras 10
检查元素是否没有属性 s并且没有元素是不够的.您需要检查元素是否真的为空(绝对没有内容).XElement有一个属性,实际上可以帮助你做到这一点 - XElement.IsEmpty.
var document = XDocument.Parse(@"<body><ul><li><a href='#'>Joy</a></li></ul><p>Hi.</p></body>");
document.Descendants("a").Remove();
var emptyElements = from element in document.Descendants()
where element.IsEmpty
select element;
while (emptyElements.Any())
emptyElements.Remove();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3920 次 |
| 最近记录: |