我有XML,我使用此代码删除标签:
XElement xmlElement = XElement.Parse(xml);
xmlElement.XPathSelectElement("//"+ tagToRemove).Remove();
但现在我有另一个问题。在上面的方法我删除一个特定的标签,但现在我想删除下面的标签。在XML中有很多名为param
的标记,所以我不能删除它。
我在想的是删除子标签所在的标签
name = ERP_OUTPUT_400_20_DOCUMENTATIONLANGUAGE_field
<param type=\"read-only\" committed=\"no\" changed=\"no\" visible=\"yes\" no=\"1\">
<name>ERP_OUTPUT_400_20_DOCUMENTATIONLANGUAGE_field</name>
<desc>ERP OUTPUT 400 20 DOCUMENTATIONLANGUAGE</desc>
<val>SV;</val>
<val-desc>SV;</val-desc>
<domain name=\"function\" />
<aux>
<prop name=\"hidden\">no</prop>
</aux>
</param>
我该怎么做?
答案 0 :(得分:2)
要选择具有子元素<name>
值等于特定名称的元素,可以使用以下XPath查询:
//element_name[name='specific_name']
基于现有代码的示例:
var name = "ERP_OUTPUT_400_20_DOCUMENTATIONLANGUAGE_field";
var xpath = String.Format("//{0}[name='{1}']", tagToRemove, name);
xmlElement.XPathSelectElement(xpath).Remove();