C# 从xml文件中获取字符串
我有一个coode正在尝试获取url所在的xml文件的id 我的代码C# 从xml文件中获取字符串,c#,linq-to-xml,C#,Linq To Xml,我有一个coode正在尝试获取url所在的xml文件的id 我的代码 public static string GetPageIdByUrl(string url) { string folder = HttpContext.Current.Server.MapPath("/App_Data/Pages/" + Path.DirectorySeparatorChar); foreach (string file in Directory.GetFiles(folder,
public static string GetPageIdByUrl(string url)
{
string folder = HttpContext.Current.Server.MapPath("/App_Data/Pages/" + Path.DirectorySeparatorChar);
foreach (string file in Directory.GetFiles(folder, "*.xml", SearchOption.TopDirectoryOnly))
{
var xml = XDocument.Load(file);
var q = from f in xml.Descendants("Page")
where (string)f.Element("Url").Value == url
select (string)f.Attribute("Id").Value;
if (q.Count() != 0)
{
return q.SingleOrDefault();
}
}
return null;
}
我得到这个错误:
对象引用未设置为对象的实例。
行:选择f.AttributeId.Value
如果测试存在于xml文件测试中,我希望它返回属性ID。但sems仅适用于第一个xml文件
希望您能解决这个问题。尝试发布一些示例XML
我猜您的Url元素没有Id精确拼写属性。因此,XNode为null,无法提供值。尝试发布一些示例XML 我猜您的Url元素没有Id精确拼写属性。因此,XNode为null,无法提供值。Id是Url元素上的属性吗 请注意,当使用类型转换作为XElement和XAttribute定义对各种基类型的类型转换时,可以省略.Value。这通常是意外的NullReferenceException的来源。Id是Url元素上的属性吗
请注意,当使用类型转换作为XElement和XAttribute定义对各种基类型的类型转换时,可以省略.Value。这通常是意外的NullReferenceException的来源。我今天提到的问题是,在xml文件中,属性是calld id而不是id。我今天提到的问题是,在xml文件中,属性是calld id而不是id。您考虑过改用XPath吗 我已经有一段时间没有使用语法了,但是查询应该类似于以下内容: /页面[Url='THE_STRING']
使用SelectNodes,您应该得到一个适合您的查询的节点列表,以及可以从中获取属性值的节点列表。您考虑过改用XPath吗 我已经有一段时间没有使用语法了,但是查询应该类似于以下内容: /页面[Url='THE_STRING']
使用SelectNodes,您应该获得一个适合查询的节点列表,以及可以从中获取属性值的节点列表。您应该在原始问题而不是新答案中将其设置为and EDIT:。您应该在原始问题而不是新答案中将其设置为and EDIT:。
<Pages>
<Page><Url Id="6428">http://www.example.com/</Url></Page>
</Pages>
var q = from f in xml.Descendants("Page")
where (string)f.Element("Url") == url
select (string)f.Element("Url").Attribute("Id");