gpt4 book ai didi

c# - 如何使用属性过滤 Xml 文件?

转载 作者:太空宇宙 更新时间:2023-11-03 21:31:51 25 4
gpt4 key购买 nike

您好,我想控制一个 xml 文件...为此,我使用 linq to xml。

private string GetGroup(string xml, string id) 
{
XDocument document;
XElement element;

try
{
document = XDocument.Load(xml);
//element = document.Root.Elements("Permissiongroup").FirstOrDefault(e => e.Element("id").Value == id);

element = document.Elements("Permissiongroup").FirstOrDefault(e => e.Element("id").Value == id);

if (element != null)
{
return element.Element("display").Value;
}
else
{
return string.Empty;
}
}
catch (Exception)
{
return null;
}
finally
{
document = null;
element = null;
}

}

这是我的 xml:

<?xml version="1.0" encoding="iso-8859-1"?>

<Permissiongroup>
<Permission id="Hessen" display="KV-IT" />
<Permission id="Berlin" display="DBG_Update" />
</Permissiongroup>

例如我想要的方法是..

string group = GetGroup(xmlpath, "Hessen");

组是“KV-IT”

最佳答案

您当前拥有的内容存在一些问题 - 您缺少查询的权限并正在查找元素而不是属性。以下工作,尽管我会将其拆分以检查元素是否存在(例如,确保存在 Permission 元素等),而不是依赖于错误处理。

// string group = GetGroup(xmlpath, "Hessen"); // returns KV-IT
// string group2 = GetGroup(xmlpath, "Berlin"); //DBG_Update

private string GetGroup(string xml, string id)
{
XDocument document;
XElement element;

try
{
document = XDocument.Load(xml);

element = document.Elements("Permissiongroup").Elements(("Permission")).FirstOrDefault(t => t.Attribute("id").Value == id);

if (element != null)
{
return element.Attribute("display").Value;
}
else
{
return string.Empty;
}
}
catch (Exception ex)
{
return null;
}
finally
{
document = null;
element = null;
}

}

关于c# - 如何使用属性过滤 Xml 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23754954/

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