<location>
<hotspot name="name1" X="444" Y="518" />
<hotspot name="name2" X="542" Y="452" />
<hotspot name="name3" X="356" Y="15" />
</location>
我有一个点变量,我需要选择节点及其坐标,然后更改属性值。我想做类似的事情:
let node = xmld.SelectSingleNode("/location/hotspot[@X='542' @Y='452']")
node.Attributes.[0].Value <- "new_name2"
但通过变量获取属性值(变量名.X / 变量名.Y)。
我个人会使用 LINQ to XML:
var doc = XDocument.Load(...);
var node = doc.Root
.Elements("hotspot")
.Single(h => (int) h.Attribute("X") == x &&
(int) h.Attribute("Y") == y);
请注意,您应该使用SingleOrDefault
如果可能没有任何匹配元素,或者First
/ FirstOrDefault
如果可能有多个匹配项。
一旦你找到了正确的hotspot
节点,您可以轻松设置属性:
node.SetAttributeValue("X", newX);
node.SetAttributeValue("Y", newY);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)