0
텍스트 파일에서 가져온 다음 XML 문자열의 "U8"노드에서 정보 (Name 및 Val)를 얻고 싶습니다.XML serializing returns 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에서 'System.InvalidOperationException'유형의 예외를 처리했습니다. – CB4
이 여러 번 시도했습니다. 내가 게시 한 코드가 작동해야합니다. "HtmlDecode"이후에 어떤 결과가 발생합니까? 디버거에서 XML을 보길 원한다면 유효한 XML을 얻겠습니까? 원본 XML 파일을 게시 할 수 있습니까? 전체 예외 (내부 예외)? –
내 XML 텍스트 파일이 큰 파일입니다. 그것은 여전히 XML 인코딩 된 위의 부분을 제외하고 모든 XML을 디코딩했습니다. 귀하의 질문에, HtmlDecoder 직후에 XML 문자열에 "XML 페이지를 표시 할 수 없습니다. XSL 스타일 시트를 사용하여 XML 입력을 볼 수 없습니다. 오류를 수정 한 후 새로 고침 버튼을 클릭하거나 나중에 다시 시도하십시오. . ---------------------------------------------- ---------------------------------- 공백은이 위치에서 허용되지 않습니다. 리소스 파일 처리 중 오류가 발생했습니다. " – CB4