您好,我想控制一个 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/