【发布时间】:2016-10-17 07:29:11
【问题描述】:
我有一个由父节点和子节点组成的 XML 文档,
<?xml version='1.0' encoding='UTF-8'?>
<response>
<system_timestamp>2016-10-21 13:40:28</system_timestamp>
<response_data>
<status>Active</status>
<profile>
<first_name>John</first_name>
<last_name>Abraham</last_name>
<ship_to_address>
<address_1>null</address_1>
<address_2>null</address_2>
<city>null</city>
<state>null</state>
<postal_code>null</postal_code>
</ship_to_address>
</profile>
</response_data>
</response>
我很少有像<address_1> 和<address_2> 这样的空值子节点。那么,现在我将如何删除我的子节点的那些空值。我试过了
doc.Descendants().Where(e => string.IsNullOrEmpty(e.Value)).Remove();
但这不起作用。我正在使用这个
XmlDocument doc = new XmlDocument();
doc.LoadXml(_value);
解析xml文档的代码。我们是否有任何其他方法可以使用 XMLDocument 而不是 XElement 来删除。
【问题讨论】:
-
@SeM:不,这不是重复的——因为在这种情况下元素不是实际上为空的;它们包含文本“null”。
-
@JonSkeet aa,我的错,我没有注意到。 Meena,您需要检查文本值“null”并删除它们。
-
我们是否还有其他方法可以使用 XMLDocument 而不是 XElement 来删除。因为我正在使用“XmlDocument doc = new XmlDocument(); doc.LoadXml(_value);”此代码用于解析 XML 文档??