0
我遇到的問題是讀取XML文件並拉動多個PIECE_WGT。想拉屬性,以及元素值使用來自XML的Linq的聚合倍數
這裏就是我有以下
Pieces = el.Element("PIECE_WGT").Attribute("CNT").Value,
Weight = el.Element("PIECE_WGT").Value
中的煩惱下面是我的所有代碼
class FILELOGElements
{
public string FileNo { get; set; }
public string TotPieces { get; set; }
public string TotWeight { get; set; }
public string PiecesUsed { get; set; }
public double Pieces { get; set; }
public double Weight { get; set; }
}
private IEnumerable<FILELOGElements> FileInfo(XElement doc, string FileNo)
{
IEnumerable <FILELOGElements> Info =
from el in doc.Elements("FILE_NO")
where el.Attribute("ID").Value.ToUpper() == FileNo
select new FILELOGElements
{
FileNo = el.Attribute("ID").Value.ToUpper(),
TotPieces = el.Element("TOTAL_PIECES").Value.ToUpper(),
TotWeight = el.Element("TOTAL_WEIGHT").Value.ToUpper(),
PiecesUsed = el.Element("PIECES_USED").Value.ToUpper(),
Pieces = el.Element("PIECE_WGT").Attribute("CNT").Value,
Weight = el.Element("PIECE_WGT").Value
};
return Info;
}
下面是如何設置XML文檔:
<INFO>
<FILE_NO ID="2150510370">
<TOTAL_PIECES>2</TOTAL_PIECES>
<TOTAL_WEIGHT>500</TOTAL_WEIGHT>
<PIECES_USED>2</PIECES_USED>
<PIECE_WGT CNT="1">100</PIECE_WGT>
<PIECE_WGT CNT="2">125</PIECE_WGT>
</FILE_NO>
<FILE_NO ID="2150510371">
<TOTAL_PIECES>10</TOTAL_PIECES>
<TOTAL_WEIGHT>1000</TOTAL_WEIGHT>
<PIECES_USED>3</PIECES_USED>
<PIECE_WGT CNT="1">100</PIECE_WGT>
<PIECE_WGT CNT="2">125</PIECE_WGT>
<PIECE_WGT CNT="3">275</PIECE_WGT>
</FILE_NO>
</INFO>
你還沒說什麼是錯的。推測問題是這些值是字符串,而你的屬性是'double'的 - 所以我建議將'XAttribute'或'XElement'轉換爲'double'而不是使用自定義轉換,而不是使用'Value'財產......但你應該真的編輯代碼來啓動錯誤。還要注意,你說你「遇到困難」的代碼不會出現在更完整的代碼中 - 你正在調用片段中的Count()'屬性,但不是在方法本身中...請發佈一個[mcve]讓它更容易幫助你。 –
我將件和重量更改爲字符串。這有助於消除錯誤。我需要的是能夠拉動PIECE_WGT的所有實例的FILE_NO選擇 舉例:如果用戶選擇FILE_NO 2150510371,我需要能夠返回PIECE_WGT CTN = 1,PIECE_WGT = 2,PIECE_WGT = 3 –
待辦事項你想計算總重量和總數? –