我在 C# 的 xml 文档中有一个简单的 xml 节点,我想查询它,然后将visible属性的值设置为 false。下面是 xml。我需要能够通过节点名称(DGField)和text_id(Test.ChangeRank)选择节点。有谁知道如何做到这一点?提前致谢。
<DGField text_id="Test.ChangeRank" template="Ranking" visible="true">
假设您的 XmlDocument 名为 doc,那么以下内容应该有效。
XmlNode node = doc.SelectSingleNode("//DGField[@text_id='Test.ChangeRank']");
if (node != null)
{
node.Attributes["visible"].Value = "false";
}
这可以进行更多的错误检查,以确保正在更改的属性存在等,但这可以保持干净。
基本上,第一行使用 XPath 表达式来定位 DGField 元素,其中 text_id='Test.ChangeRank'。如果找到,则返回节点,然后用于操作所需的属性值。
我在 XPath 查询中使用了“//”语法,以便搜索整个 Xml 文档,这不是最佳的,使用更具体的 XPath 可以执行得更好。例如,如果您有一个看起来像这样的完整文档
<root>
<DGFields>
<DGField text_id='1' template='Ranking' visible='true' />
<DGField text_id='Test.ChangeRank' template='Ranking' visible='true' />
</DGFields>
</root>
然后可以使用更具体的 XPath 查询,如下所示
XmlNode node = doc.SelectSingleNode(
"root/DGFields/DGField[@text_id='Test.ChangeRank']");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)