gpt4 book ai didi

c# - 从 id 属性获取 xml 节点值 c#

转载 作者:太空宇宙 更新时间:2023-11-03 10:45:22 24 4
gpt4 key购买 nike

我有一个登录页面,用户可以在其中从下拉列表中选择他们的姓名,然后在文本框中输入他们的 ID 代码。然后页面重定向到显示用户信息的帐户页面。下拉列表和文本框正在加载并根据 xml 文件进行检查,这是其中的一个示例。

<staff>
<idcode>0200</idcode>
<Name id="0200">Doe, John</Name>
</staff>

我希望帐户页面检查名称节点中的 id 属性以在标签中显示用户名。我试过使用此处描述的方法: C# Linq to XML query ,但我得到的标签的输出是这个“System.Linq.Enumerable+WhereEnumerableIterator`1[System.Xml.Linq.XElement]”。这是我的代码:

XDocument xdoc = XDocument.Load(Server.MapPath("Staff.xml"));
var result = xdoc.Descendants("Staff").Elements("Name").Where(n => n.Attribute("id").Value == inputPassword);
nameLabel.Text = result.ToString();

inputPassword 是来自上一页的 idcode,可以正确加载。

我是不是遗漏了一些简单的东西,或者重构 xml 以便名称节点是 idcode 节点的子节点会更容易吗?谢谢。

最佳答案

如果您需要通过给定的 id 选择名称,那么您还需要做两件事 - 从结果中只选择一个元素,并获取该名称元素的值:

string name = xdoc.Descendants("Staff")
.Elements("Name")
.Where(n => (string)n.Attribute("id") == inputPassword)
.Select(n => (string)n) // get element's value
.FirstOrDefault(); // select only first value, if any

或者用 XPath

string xpath = String.Format("//Staff/Name[@id='{0}']", inputPassword);
string name = (string)xdoc.XPathSelectElement(xpath);

关于c# - 从 id 属性获取 xml 节点值 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23635818/

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