0
我想從文本文件中獲得以下XML字符串的「U8」節點內的信息(Name和Val)。XML序列化返回null
<Cluster>
<String>
<Name>SomeNAme</Name>
<Val>
<Cluster>
<Name>SomeNAme</Name>
<NumElts>2</NumElts>
<U8>
<Name>SomeNAme</Name>
<Val>11</Val>
</U8>
<U8>
<Name>SomeNAme</Name>
<Val>208</Val>
</U8>
</Cluster>
</Val>
</String>
</Cluster>
我寫了以下內容來獲取屬於U8節點的信息,但輸出返回Null。我做錯了什麼?謝謝
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Serialization;
using System.IO;
using System.Xml.Linq;
using System.Xml;
namespace testXMLSerializer
{
class Class4
{
static void Main(string[] args)
{
var xml = File.ReadAllText(@"C:\test.xml");
XmlSerializer serializer = new XmlSerializer(typeof(Cluster));
using (var reader = new StringReader(xml))
{
var info = (Cluster)serializer.Deserialize(reader);
}
Console.Read();
}
}
[XmlRoot("Cluster")]
public class Cluster
{
[XmlElement("String")]
public List<Cluster_String> Cluster_String { get; set; } // I'll have many of this items in the actual xml
}
public class Cluster_String
{
[XmlElement("Val")]
public Val Val { get; set; }
}
public class Val
{
[XmlElement("Cluster")]
public Cluster_S_V_Cluster Cluster_S_V_Cluster { get; set; }
}
public class Cluster_S_V_Cluster
{
[XmlElement("U8")]
public List<U8> U8 { get; set; }
}
public class U8
{
public string Name { get; set; }
public string Val { get; set; }
}
}
我就行了「VAR信息= ...」「無效操作異常」 錯誤是: 一個沒有在System.Xml.dll – CB4
發生處理異常的類型'System.InvalidOperationException'我試了幾次。 我發佈的代碼應該可以工作。 「HtmlDecode」後你會得到什麼?如果你希望在調試器中看到它,你會得到一個有效的XML嗎? 你可以發佈你的原始XML文件嗎?和完整的例外(也是內部例外)? –
我的XML文本文件是一個大文件。除了上面那部分仍然有XML編碼的部分之外,它已經解碼了所有的XML。根據你的問題,在HtmlDecoder之後,XML字符串包含一些像這樣的無效內容「無法顯示XML頁面 無法使用XSL樣式表查看XML輸入。請更正錯誤,然後單擊刷新按鈕,或稍後再試。 。 ---------------------------------------------- ---------------------------------- 此位置不允許使用空格。處理資源'文件 「 – CB4