【发布时间】:2017-09-11 16:38:14
【问题描述】:
我想从下面的 XML 中获取元素 ROW 的所有属性的数组
<?xml version="1.0" encoding="windows-1251"?>
<DATAPACKET Version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.seavus.com/AML/XML-Schema/CTR_Single.xsd">
<banka>
<!-- banka children -->
</banka>
<METADATA>
<FIELDS>
<!-- Fields -->
</FIELDS>
<PARAMS LCID="0" />
</METADATA>
<ROWDATA>
<ROW BANK_ID="370" AKTIVNOST_SE_VRSI_VO_19="Г" NAZIV_21="XXXXX" SEDISTE_21="XX" DANOCEN_BROJ_21="12333" BROJ_SMETKA_21="123333" BANKA_21="330" DATUM_22="03.01.2017" CAS_22="13:30" VID_AKTIV_23="XXX" IZNOS_24="12" VALUTA_24="807" DATUM_25="04.01.2017"
VREME_25="12:55" SIFRA_26="800" OPIS_27="XXXXXXX" />
</ROWDATA>
</DATAPACKET>
说清楚,我想从这个节点做一个数组:
<ROW BANK_ID="370" AKTIVNOST_SE_VRSI_VO_19="Г" NAZIV_21="XXXXX" SEDISTE_21="XX" DANOCEN_BROJ_21="12333" BROJ_SMETKA_21="123333" BANKA_21="330" DATUM_22="03.01.2017" CAS_22="13:30" VID_AKTIV_23="XXX" IZNOS_24="12" VALUTA_24="807" DATUM_25="04.01.2017"
VREME_25="12:55" SIFRA_26="800" OPIS_27="XXXXXXX" />
我想用这个数组来生成插入查询。
到目前为止我所尝试的:
doc.Load(path);
ArrayList list = new ArrayList();
XmlNode idNodes = doc.SelectSingleNode("DATAPACKET/ROWDATA/ROW");
foreach (XmlNode node1 in idNodes.Attributes)
{
list.Add(node1.InnerText);
}
我有从我的 XML 在线生成的类,我正在使用它们来反序列化我的 XML 文件。
【问题讨论】:
-
一组什么?字符串,只有那些字段名称?或者你想要一个包含键值对的数组?
-
是的,只有具有这些字段名称的字符串
-
什么是DATAROW?我在您的 xml 中看到一个 DATAPACKET 但没有 DATAROW
-
我的错误解决了问题
-
ROW没有子节点。你是说属性吗?
标签: c# arrays xml linq-to-xml