![](/img/trans.png)
[英]Xamarin - Binary XML file line #1: Error inflating class <unknown>
[英]Unknown XML error
我正在嘗試讀取一些XML數據,但是卻遇到了從未發現過的錯誤。 誰能對此有所啟發?
錯誤:
屏幕名稱:System.Xml.Linq.Extensions + c__Iterator5
UnityEngine.Debug:Log(Object)HV_ReadSettingsFile:Update()(位於Assets / _scripts / HV_ReadSettingsFile.cs:64)
這是我在XML中讀取的代碼,最終會產生錯誤:
var xdoc = XDocument.Load(@"C:\\Test.xml");
var screen = xdoc.Descendants("Screen");
foreach (var Screen in screen)
{
HV_Screen _screen = new HV_Screen();
_screen.Name = Convert.ToString(Screen.Descendants("Name").Attributes("Name"));
Debug.Log("Screen name: " + _screen.Name);
}
而我的XML工作表:
<Settings>
<Display_Settings>
<Screen>
<Name Name="Screen" />
<ScreenTag Tag="Screen Tag" />
<LocalPosition X="12" Y="81" Z="28" />
<Width Width="54" />
<Height Height="912" />
</Screen>
<Screen>
<Name Name="Screen" />
<ScreenTag Tag="Screen Tag" />
<LocalPosition X="32" Y="21" Z="28" />
<Width Width="54" />
<Height Height="912" />
</Screen>
</Display_Settings>
</Settings>
那不是錯誤。 這恰好記錄了您的要求。 您已經在所有Name
元素中要求了所有Name
屬性...但是隨后您嘗試將該序列記錄為單個值。
我想你要:
var screens = xdoc.Descendants("Screen");
foreach (var screen in screens)
{
HV_Screen _screen = new HV_Screen();
_screen.Name = (string) screen.Element("Name").Attribute("Name");
Debug.Log("Screen name: " + _screen.Name);
}
現在,它正在尋找每個Screen
元素一個元素和一個屬性。 請注意,我已將變量名更改為遵循普通的.NET約定,而不是_screen
因為我不知道HV_Screen
是什么意思。
尚不清楚為什么您要為Width
, Height
和Name
分別設置元素,每個元素都具有與元素名稱匹配的屬性-而ScreenTag
幾乎做到了。 如果XML在您的控制之下,則可以考慮:
<Screen Name="Screen" Width="54" Height="912" Tag="Screen Tag">
<LocalPosition X="12" Y="81" Z="28" />
</Screen>
也許:
<Screen>
<Name>Screen</Name>
<ScreenTag>Screen Tag</ScreenTag>
<LocalPosition X="12" Y="81" Z="28" />
<Width>54</Width>
<Height>912</Height>
</Screen>
另外,如果您要構建HV_Screen
項目的集合, HV_Screen
可能要使用查詢而不是foreach
循環-但目前尚不清楚您實際要執行的操作,而不僅僅是記錄調試信息。
您可以嘗試執行以下操作:
var xdoc = XDocument.Load(@"C:\\test.xml");
List<string> lstScreen = xdoc.Descendants("Screen").Select(x => x.Element("Name").Attribute("Name").Value).ToList();
foreach (string name in lstScreen)
{
...
希望對您有幫助!!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.