Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用linq调用xml标记值_Xml_Linq - Fatal编程技术网

使用linq调用xml标记值

使用linq调用xml标记值,xml,linq,Xml,Linq,定义名称空间,然后在如下查询中使用它 private string ImportoXML(string PercorsoXML, string ID) { XElement xdoc = XElement.Load(PercorsoXML); //you'll have to edit your path //Run query var ElencoValori = from lv2 in xdoc.Descendants("Pmt

定义名称空间,然后在如下查询中使用它

   private string ImportoXML(string PercorsoXML, string ID)
    {
        XElement xdoc = XElement.Load(PercorsoXML); //you'll have to edit your path

        //Run query
        var ElencoValori = from lv2 in xdoc.Descendants("PmtInf").Elements("DrctDbtTxInf")
                           select new
                           {
                               //PmtId = lv2.Element ("PmtId").Element("InstrId").Value,
                               //InstdAmt = lv2.Element ("InstdAmt").Value
                               PmtId = lv2.Element("DrctDbtTx")
                                           .Element("MndtRltdInf")
                                           .Element("MndtId")
                                           .Value,
                               InstdAmt = lv2.Element("InstdAmt").Value
                           };
        return ElencoValori.Where(c => c.PmtId.EndsWith(ID)).FirstOrDefault().InstdAmt.ToString();

    }

定义名称空间,然后在如下查询中使用它

   private string ImportoXML(string PercorsoXML, string ID)
    {
        XElement xdoc = XElement.Load(PercorsoXML); //you'll have to edit your path

        //Run query
        var ElencoValori = from lv2 in xdoc.Descendants("PmtInf").Elements("DrctDbtTxInf")
                           select new
                           {
                               //PmtId = lv2.Element ("PmtId").Element("InstrId").Value,
                               //InstdAmt = lv2.Element ("InstdAmt").Value
                               PmtId = lv2.Element("DrctDbtTx")
                                           .Element("MndtRltdInf")
                                           .Element("MndtId")
                                           .Value,
                               InstdAmt = lv2.Element("InstdAmt").Value
                           };
        return ElencoValori.Where(c => c.PmtId.EndsWith(ID)).FirstOrDefault().InstdAmt.ToString();

    }

在发布之前,请尝试至少对代码进行一点格式化。您的问题是,您的元素位于
urn:CBI:xsd:CBISDDReqLogMsg.00.01.00
命名空间中,因此您需要像这样访问它们“{urn:CBI:xsd:CBISDDReqLogMsg.00.01.00}PmtInf`或者创建一个命名空间实例并使用它
XNamespace ns=“urn:CBI:xsd:CBISDDReqLogMsg.00.01.00”;xdoc.substands(ns+“PmtInf”)
请在发布之前尝试至少对代码进行一点格式化。您的问题是您的元素位于
urn:CBI:xsd:CBISDDReqLogMsg.00.01.00
命名空间中,因此您需要像以下方式访问它们:{urn urn:CBI:xsd:CBISDDReqLogMsg.00.01.00}PmtInf`或创建一个命名空间实例并使用它
xns=“urn:CBI:xsd:CBISDDReqLogMsg.00.01.00”;xdoc.substands(ns+“PmtInf”)
XNamespace  ns = @"urn:CBI:xsd:CBISDDReqLogMsg.00.01.00";
var ElencoValori = from lv2 in xdoc.Descendants(ns+"PmtInf").Elements(ns + "DrctDbtTxInf")
                           select new
                           {
                               //PmtId = lv2.Element ("PmtId").Element("InstrId").Value,
                               //InstdAmt = lv2.Element ("InstdAmt").Value
                               PmtId = lv2.Element(ns + "DrctDbtTx")
                                           .Element(ns + "MndtRltdInf")
                                           .Element(ns + "MndtId")
                                           .Value,
                               InstdAmt = lv2.Element(ns + "InstdAmt").Value
                           };
return ElencoValori.Where(c => c.PmtId.EndsWith(ID)).FirstOrDefault().InstdAmt.ToString();