使用属性值查找xsd元素
本文关键字:xsd 元素 查找 属性 | 更新日期: 2023-09-27 18:01:51
我怎么能找到complexType元素知道它的名称(站)?我是初学者下面是完整的xsd代码:http://pastebin.com/ymuPDCCb这行不通。
private XElement GetComplexType(string typeName)
{
XElement complexType = xsdSchema.Elements("complexType")
.Where(a => a.Attributes("name").FirstOrDefault() != null && a.Attribute("name").Value==typeName)
.FirstOrDefault();
return complexType;
}
您必须包含xs
命名空间,并且您需要使用Descendants()
而不是Elements()
来查询所有级别,如下所示:
private static void ParseXml()
{
XDocument doc = XDocument.Load(@"C:'schema.xml");
if (doc != null)
{
XElement nodes = GetComplexType("station", doc);
if (nodes != null)
{
Console.WriteLine("station found...");
}
else
{
Console.WriteLine("station NOT found!!");
}
}
}
private static XElement GetComplexType(string typeName, XDocument xsdSchema)
{
XNamespace ns = "http://www.w3.org/2001/XMLSchema";
XElement complexType = xsdSchema.Descendants(ns + "complexType")
.Where(a => a.Attributes("name").FirstOrDefault() != null && a.Attribute("name").Value == typeName)
.FirstOrDefault();
return complexType;
}
检查这个SO回答有关元素与后代的更多信息