我有一個打印按鈕,它提供XML數據以填充adobe生命週期模板。我試圖將XML中的ROWID與轉發器rowid進行比較,以便打印關於按鈕被點擊的行的信息。LINQ to XML如何將子項與中繼器項目進行比較
Int32 rownum = Convert.ToInt32(e.CommandArgument.ToString());
string xmlROWID = Xmld.Descendants("ROWID").First().Value;
下面是在XML的孩子2:
<VKRSADL>
<CUSTOMER_SADLS>
<TABLEVALUE>
<ROW>
<ROWID>0</ROWID>
<ID>Съкредитополучател</ID>
<TYPE>48</TYPE>
<TYPEID>1</TYPEID>
<TYPECODE>1</TYPECODE>
<CRSCODE>777</CRSCODE>
<EGN />
<NAME />
<XML>
<SADL0>
<OwnerCrsCode />
<TABLEVALUE />
</SADL0>
</XML>
<XMLCHECK />
</ROW>
<ROW>
<ROWID>1</ROWID>
<ID>Съкредитополучател</ID>
<TYPE>48</TYPE>
<TYPEID>2</TYPEID>
<TYPECODE>1</TYPECODE>
<CRSCODE>123123</CRSCODE>
<EGN />
<NAME />
<XML>
<SADL1>
<OwnerCrsCode />
<TABLEVALUE />
</SADL1>
</XML>
<XMLCHECK />
</ROW>
</TABLEVALUE>
</CUSTOMER_SADLS>
</VKRSADL>
它相較於第一()給了我只有第一ROWID,並且可以有多個。我如何才能將中繼器rowid與每個我已經保存的ROWID進行比較?
我已經試過這樣:
foreach (var child in Xmld.Root.Element("REQUEST").Element("VKRSADL").Element("CUSTOMER_SADLS").Element("TABLEVALUE").Elements("ROW").Elements()) {
//DO SOMETHING
}
,但我得到一個錯誤: 型「System.NullReferenceException」的異常出現在App_Web_f2rvuyke.dll但在用戶代碼
其他沒有處理信息:對象引用未設置爲對象的實例。
你可以減少到[mcve]嗎?除非它真正綁定到ASP.NET,否則最好刪除該依賴關係,並最終以控制檯應用程序結束 - 並示例XML。 (不清楚你的問題是獲取中繼器ID還是將它們與XML進行比較......) –
我現在就這樣做,我只是認爲可能會更好地深入一點。更新。 –
那麼這不是一個[mcve] - 你只有兩行代碼和一部分XML文檔。再次,請儘可能清楚你想要做什麼,以及你如何嘗試去做。 (是的,'First()'只會給你一個單一的元素 - 爲什麼要使用它?你沒有使用'First()'就試過了什麼?) –