C# 如何获取具有可选值minOccurs=0的xml元素

C# 如何获取具有可选值minOccurs=0的xml元素,c#,linq,C#,Linq,您好,我需要筛选具有可选值minOccurs=0的Xml元素 这就是我尝试过的 var XMLDocumentMaster = XDocument.Load(@"D:\Stephen\Documents\Schema\AgileFlow_Import.xsd"); XMLDocumentM = XMLDocumentMaster(); var prefix = XMLDocumentMaster.Root.GetNamespaceOfPrefix("xs"); /

您好,我需要筛选具有可选值minOccurs=0的Xml元素 这就是我尝试过的

    var XMLDocumentMaster = XDocument.Load(@"D:\Stephen\Documents\Schema\AgileFlow_Import.xsd");
    XMLDocumentM = XMLDocumentMaster();
    var prefix = XMLDocumentMaster.Root.GetNamespaceOfPrefix("xs");
    // get Vehicle
    var vehicle = XMLDocumentMaster.Root.Element(prefix + "element");
    // get sequence for Ford
    var sections = vehicle.Element(prefix + "complexType")
                        .Element(prefix + "sequence")
                        // the Ford element
                        .Element(prefix + "element")
                        .Element(prefix + "complexType")
                        .Element(prefix + "sequence")
                        // elements
                        .Elements(prefix + "element").ToList();

试着这样做:

 var XMLDocumentMaster = XElement.Load(@"D:\Stephen\Documents\Schema\AgileFlow_Import.xsd");  
    IEnumerable<XElement> items =  
        from el in XMLDocumentMaster.Descendants("minOccurs")  
        select el;  
    foreach(XElement Ovaule in items)  
       if(Ovaule=0)Console.WriteLine(Ovaule.Name + ":" + (string) Ovaule);
var XMLDocumentMaster=XElement.Load(@“D:\Stephen\Documents\Schema\AgileFlow_Import.xsd”);
IEnumerable items=
从XMLDocumentMaster.subjects中的el(“minOccurs”)
选择el;
foreach(项目中的椭圆柱)
if(Ovaule=0)Console.WriteLine(Ovaule.Name+“:”+(string)Ovaule);
私有无效按钮2\u单击(对象发送者,事件参数e)
{
List objdec=新列表();
XmlDocument xmlDoc=新的XmlDocument();
Load(@“D:\Stephen\Documents\Schema\AgileFlow_Import.xsd”);
XmlNamespaceManager nsmgr=新的XmlNamespaceManager(xmlDoc.NameTable);
nsmgr.AddNamespace(“xs”http://www.w3.org/2001/XMLSchema");
XmlNodeList nodes=xmlDoc.SelectNodes(//xs:element[@name='IR_DocumentMaster']//xs:complexType//xs:all//xs:element”,nsmgr);
尝试
{
objdec=nodes.Cast().Where(node=>node.Attributes.GetNamedItem(“minOccurs”)!=null&&node.Attributes.GetNamedItem(“minOccurs”).Value==“0”)
.Select(x=>x.Attributes[“name”].Value).ToList();
    private void button2_Click(object sender, EventArgs e)
    {
        List<string> objdec = new List<string>();
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(@"D:\Stephen\Documents\Schema\AgileFlow_Import.xsd");
        XmlNamespaceManager nsmgr = new XmlNamespaceManager(xmlDoc.NameTable);
        nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema");
        XmlNodeList nodes = xmlDoc.SelectNodes("//xs:element[@name='IR_DocumentMaster']//xs:complexType//xs:all//xs:element", nsmgr);
        try
        {
            objdec = nodes.Cast<XmlNode>().Where(node =>  node.Attributes.GetNamedItem("minOccurs") != null && node.Attributes.GetNamedItem("minOccurs").Value == "0")
                           .Select(x => x.Attributes["name"].Value).ToList();