0
올바른 형식이 아니더라도 XML 파일이 있습니다. 그게 내 주요 목표이기 때문에 그냥 값을 검색하고 싶습니다. 또한이 파일은 한 줄로되어 있습니다. 파일은 다음과 유사합니다. xmlReader가 xml의 한 줄을 파싱합니다.
<Real64List>...numbers value....</Real64List> <Real64List>...numbers value...</Real64List><Uint32List>...numbers value..</Uint32List>.
나는 우선 첫 번째 부분에 수 있었다, 그러나 나는 두 번째 부분과 세 번째 부분을 구문 분석려고 할 때 나는 "라인 하나에 여러 루트"오류가 발생합니다. 그렇다면 어떻게 Real64List와 Uint32List의 두 번째 부분을 파싱 할 수 있습니까? 미리 감사드립니다!
다음은 내가 사용하고있는 코드 스 니펫입니다.
using (XmlReader reader = XmlReader.Create("generator_0000001.xml"))
{
List<float> vertex = new List<float>();
List<Vector3> verticesList = new List<Vector3>();
while (!reader.EOF)
{
if (reader.NodeType == XmlNodeType.Element && reader.Name == "Real64List")
{
string xmlValue = reader.Value;
string[] coordinates = xmlValue.Split(',');
for (int i = 0; i < coordinates.Length; i++)
{
vertex.Add(float.Parse(coordinates[i]));
}
for (int i = 0; i < vertex.Count; i += 3)
{
var myVect = new Vector3(vertex[i], vertex[i + 1], vertex[i + 2]);
verticesList.Add(myVect);
}
}
}
에서 찾을 수 있습니다. 선 구조를 이미 알고 있다면 (루트 노드를 추가하여) 수정 한 다음 정상적으로 파싱하는 것이 가장 간단한 방법입니다. – kennyzx
유효하지 않은 XML입니다. 유효한 xml에는 하나의 루트 노드가 있습니다 – Jonesopolis
유효한 XML이 아니라는 것을 알고 있지만 다른 프로그램이 뱉어 내고있는 파일입니다. 분명히 이것은 뱉어내는 것입니다. 그래서 나는 그것으로 작업해야합니다. – Ducle91