下面是XML:
<?xml version="1.0" encoding="UTF-8"?>
<pp010 xmlns="http://www.123456768.com/technology">
<rptHdr>
<exchNam>MyXML</exchNam>
<envText>P</envText>
<rptCod>pp010</rptCod>
<rptNam>Daily Stock</rptNam>
<membLglNam>CompanyA</membLglNam>
<rptPrntEffDat>2015-04-14</rptPrntEffDat>
<rptPrntRunDat>2015-04-14</rptPrntRunDat>
</rptHdr>
<pp010Grp>
<pp010KeyGrp>
<membClgIdCod>HBGKP</membClgIdCod>
</pp010KeyGrp>
<pp010Grp1>
<pp010KeyGrp1>
<membExchIdCod>JBGJG</membExchIdCod>
</pp010KeyGrp1>
<pp010Grp2>
<pp010KeyGrp2>
<currTypCod>CHF</currTypCod>
</pp010KeyGrp2>
<pp010Grp3>
<pp010KeyGrp3>
<acctTypGrp>PP</acctTypGrp>
</pp010KeyGrp3>
<pp010Rec>
<mgnGrpCod> </mgnGrpCod>
<mgnClsCod>CSLN </mgnClsCod>
<mgnPremiumAmnt>+222926.00</mgnPremiumAmnt>
<mgnLiqDlvAmnt>+0.00</mgnLiqDlvAmnt>
<mgnSprdAmnt>+0.00</mgnSprdAmnt>
<mgnAddlAmnt>+89349.30</mgnAddlAmnt>
<unadjMgnReq>+312275.30</unadjMgnReq>
</pp010Rec>
<pp010Rec>
<mgnGrpCod> </mgnGrpCod>
<mgnClsCod>CSLM </mgnClsCod>
<mgnPremiumAmnt>+55112.00</mgnPremiumAmnt>
<mgnLiqDlvAmnt>+0.00</mgnLiqDlvAmnt>
<mgnSprdAmnt>+0.00</mgnSprdAmnt>
<mgnAddlAmnt>+30854.40</mgnAddlAmnt>
<unadjMgnReq>+85966.40</unadjMgnReq>
</pp010Rec>
字符串
我正在使用以下代码,但似乎无法使用来自<pp010Rec>... </pp010Rec>
的数据创建IEnumerable
public class MarginRep
{
public string mgnGrpCod { get; set; }
public string mgnClsCod { get; set; }
public string mgnPremiumAmnt { get; set; }
public string mgnLiqDlvAmnt { get; set; }
public string mgnSprdAmnt { get; set; }
public string mgnAddlAmnt { get; set; }
public string unadjMgnReq { get; set; }
}
private void button1_Click(object sender, EventArgs e)
{
string file = @"D:\WorkDesktop\VisualStudio\file.xml";
XDocument xmlDoc = XDocument.Load(file);
IEnumerable<MarginRep> myMarginRep =
from c in xmlDoc.Descendants("pp010Rec")
select new MarginRep()
{
mgnGrpCod = (string)c.Attribute("mgnGrpCod"),
mgnClsCod = (string)c.Attribute("mgnClsCod"),
mgnPremiumAmnt = (string)c.Attribute("mgnPremiumAmnt"),
mgnLiqDlvAmnt = (string)c.Attribute("mgnLiqDlvAmnt"),
mgnSprdAmnt = (string)c.Attribute("mgnSprdAmnt"),
mgnAddlAmnt = (string)c.Attribute("mgnAddlAmnt"),
unadjMgnReq = (string)c.Attribute("unadjMgnReq"),
};
}
型
很抱歉有这么多的XML,我觉得我需要把它显示在我不需要的前几行,而且似乎不能在<pp010Rec>
中导航。
如果你能提供任何帮助,我将不胜感激,如果你能指出我的方向文学,我可以花时间阅读,并尝试它独自。
干杯,
3条答案
按热度按时间w8f9ii691#
看起来你想要的是值而不是属性,所以改变:
字符串
收件人:
型
对其他属性执行相同的操作
iyfamqjs2#
我稍微修改了一下.xml:
字符串
所以你可以运行
型
打印:
型
**更新:**链接:http://rextester.com/UFLPQ70590
f2uvfpb93#
你确实需要按照JAT在他的帖子中所说的那样将属性更改为元素,但这并不是你的列表不是从XML创建的原因。给你带来麻烦的是命名空间(“xmlns=”http://www.123456768.com/technology“)。我不确定你的XML文件试图通过它来实现什么,但如果你删除它并按照JAT的建议执行,你的IE浏览器将开始填充。
有关名称空间的更多信息,可以从w3:http://www.w3schools.com/xml/xml_namespaces.asp查看此链接