使用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();