gpt4 book ai didi

c# - 通过其中的子节点值定位 XML 节点,并更改另一个值

转载 作者:数据小太阳 更新时间:2023-10-29 02:22:25 25 4
gpt4 key购买 nike

三部分问题。

是否可以通过其中的子节点定位特定 XML 节点以检索父节点的其他子节点?示例:

<House>
<Kitchen>
<Appliance>
<Name>Refrigerator</Name>
<Brand>Maytag</Brand>
<Model>F2039-39</Model>
</Appliance>
<Appliance>
<Name>Toaster</Name>
<Brand>Black and Decker</Brand>
<Model>B8d-k30</Model>
</Appliance>
</Kitchen>
</House>

为此,我想通过搜索“冰箱”或“ toastr ”找到合适的设备节点,并从中检索品牌。

这个问题的第二部分是这样的:这是一种愚蠢的做法吗?在 Appliance 标签中使用属性会使这更容易吗?如果是这样,我该如何定位它?

至于第三部分,一旦我找到设备,我将如何着手更改该特定设备的型号?

最佳答案

使用 XLinq ,您可以相当自然地执行此查询:

// Given:
// var xdoc = XDocument.Load(...);
// string applianceName = "Toaster";

// Find the appliance node who has a sub-element <Name> matching the appliance
var app = xdoc.Root
.Descendants("Appliance")
.SingleOrDefault(e => (string)e.Element("Name") == applianceName);

// If we've found one and it matches, make a change
if (app != null)
{
if (((string)app.Element("Model")).StartsWith("B8d-k30"))
{
app.Element("Model").Value = "B8d-k30 Mark II";
}
}

xdoc.Save(@"output.xml"); // save changes back to the document

关于c# - 通过其中的子节点值定位 XML 节点,并更改另一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11366409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com