我有以下xml文件
<?xml version="1.0" encoding="ISO-8859-1"?>
<ProdExtract>
<ExtractHeader>
<Schema>
<id>Accord ePOS Product Extract</id>
<Version>1.00</Version>
</Schema>
</ExtractHeader>
<Product>
<Mode>Modify</Mode>
<ProductID>
<LongDescription>COLMANS MINT SAUCE #</LongDescription>
</ProductID>
<BasicFields>
<Units>6</Units>
<VAT VatCode="A" VatRate="0" />
</BasicFields>
<Price>
<CurrentWSP>9.55</CurrentWSP>
<CurrentRSP>2.01</CurrentRSP>
</Price>
<Barcode>
<Eancode>5000147032921</Eancode>
</Barcode>
</Product>
</ProdExtract>
这是我对表格列的映射
foreach (XmlNode node in xDoc.SelectNodes("ProdExtract/Product"))
{
insert = insert ?? new PostgreSQLCopyHelper<ProductViewModel>("public", "q_product")
.MapUUID("q_guid", x => Guid.NewGuid())
.MapText("q_description", x => node.SelectSingleNode("ProductID/LongDescription").InnerText)
.MapText("q_barcode", x => node.SelectSingleNode("Barcode/Eancode").InnerText)
.MapNumeric("q_casesize", x => Convert.ToDecimal(node.SelectSingleNode("BasicFields/Units").InnerText))
.MapNumeric("q_sellprice", x => Convert.ToDecimal(node.SelectSingleNode("Price/CurrentRSP").InnerText))
.MapNumeric("q_casecost", x => Convert.ToDecimal(node.SelectSingleNode("Price/CurrentWSP").InnerText))
;
entities.Add(p);
}
我可以从XML文件中获取所需的所有值,并使用上述方法将它们与我的表列匹配。但现在我该如何处理这一部分
<BasicFields>
<Units>6</Units>
<VAT VatCode="A" VatRate="0" />
</BasicFields>
如果我想要VatRate的值,即0.此行
node.SelectSingleNode("BasicFields/Vat/VatRate").OuterXml;
让我无处可去,我在互联网上没有运气。
答案 0 :(得分:0)
最终弄清楚了(顺便说一下,这是c#代码,我还没检查其他语言是否有任何不同)
<BasicFields>
<Units>6</Units>
<VAT VatCode="A" VatRate="0" />
</BasicFields>
获得价值“A”
node.SelectSingleNode("BasicFields/VAT").Attributes["VatCode"].Value;
获取值“0”
node.SelectSingleNode("BasicFields/VAT").Attributes["VatRate"].Value;