[Ajuda]XML
3 participantes
Página 1 de 1
[Ajuda]XML
Alguém pode me ajudar a resolver esse erro?
InvalidOperationException: <LerSave xmlns=''> was not expected
System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadRoot (System.Xml.Serialization.XmlTypeMapping rootMap)
System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadRoot ()
System.Xml.Serialization.XmlSerializer.Deserialize (System.Xml.Serialization.XmlSerializationReader reader)
Rethrow as InvalidOperationException: There is an error in XML document.
System.Xml.Serialization.XmlSerializer.Deserialize (System.Xml.Serialization.XmlSerializationReader reader)
System.Xml.Serialization.XmlSerializer.Deserialize (System.Xml.XmlReader xmlReader)
System.Xml.Serialization.XmlSerializer.Deserialize (System.IO.TextReader textReader)
LerSave.Load (System.String path) (at Assets/Scripts/LerSave.cs:16)
CarregarSave.Start () (at Assets/Scripts/CarregarSave.cs:6)
Scripts:
Save
CarregarSave
LerSave
salvados
InvalidOperationException: <LerSave xmlns=''> was not expected
System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadRoot (System.Xml.Serialization.XmlTypeMapping rootMap)
System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadRoot ()
System.Xml.Serialization.XmlSerializer.Deserialize (System.Xml.Serialization.XmlSerializationReader reader)
Rethrow as InvalidOperationException: There is an error in XML document.
System.Xml.Serialization.XmlSerializer.Deserialize (System.Xml.Serialization.XmlSerializationReader reader)
System.Xml.Serialization.XmlSerializer.Deserialize (System.Xml.XmlReader xmlReader)
System.Xml.Serialization.XmlSerializer.Deserialize (System.IO.TextReader textReader)
LerSave.Load (System.String path) (at Assets/Scripts/LerSave.cs:16)
CarregarSave.Start () (at Assets/Scripts/CarregarSave.cs:6)
Scripts:
Save
- Código:
using UnityEngine;
using System.Collections;
using System.Xml;
using System.Xml.Serialization;
public class Save {
[XmlAttribute("name")]
public string name;
[XmlAttribute("Demencia")]
public float demencia;
[XmlAttribute("Dificuldade")]
public float dificuldade;
}
CarregarSave
- Código:
using UnityEngine;
using System.Collections;
public class CarregarSave : MonoBehaviour {
public const string path = "salvados";
void Start () {
LerSave ic = LerSave.Load(path);
foreach (Save salvados in ic.salvados)
{
print(salvados.demencia);
print(salvados.dificuldade);
}
}
}
LerSave
- Código:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.IO;
[XmlRoot("JogoSalvo")]
public class LerSave {
[XmlArray("Salvados")]
[XmlArrayItem("Save")]
public List<Save> salvados = new List<Save>();
public static LerSave Load(string path)
{
TextAsset _xml = Resources.Load<TextAsset>(path);
XmlSerializer serializer = new XmlSerializer(typeof(LerSave));
StringReader reader = new StringReader(_xml.text);
LerSave salvados = serializer.Deserialize(reader) as LerSave;
reader.Close();
return salvados;
}
}
salvados
- Código:
<?xml version="1.0" encoding="utf-8"?>
<LerSave>
<Salvados>
<Save name="Teste">
<Demencia>0</Demencia>
<Dificuldade>1</Dificuldade>
</Save>
</Salvados>
</LerSave>
yurinmds- Membro
- PONTOS : 3437
REPUTAÇÃO : 1
Respeito as regras :
Re: [Ajuda]XML
operações invalidas LerSave em uma classe que vc usar para ler o documento acho que não tem necessidades desses atributos
esse exclusivamente esta te causando um dos erros
tente usar XmlElement e adicione o atributo Serializable
para salvar e fazer a leitura vc poderia tentar usar Linq
- Código:
[XmlArray("Salvados")]
[XmlArrayItem("Save")]
esse exclusivamente esta te causando um dos erros
- Código:
[XmlRoot("JogoSalvo")]
tente usar XmlElement e adicione o atributo Serializable
- Código:
using UnityEngine;
using System.Collections;
using System.Xml;
using System.Xml.Serialization;
[Serializable()]
public class Save
{
[XmlElement("name")]
public string name;
[XmlElement("Demencia")]
public float demencia;
[XmlElement("Dificuldade")]
public float dificuldade;
}
para salvar e fazer a leitura vc poderia tentar usar Linq
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: [Ajuda]XML
weslleyFx
como consigo com o Linq fazer um sort onde busque do banco os nomes mas o sort salve os pontos de cada um.
como consigo com o Linq fazer um sort onde busque do banco os nomes mas o sort salve os pontos de cada um.
Chilinger- MembroAvançado
- PONTOS : 4092
REPUTAÇÃO : 42
Idade : 30
Respeito as regras :
Re: [Ajuda]XML
não entendi muito bem especifique mas
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: [Ajuda]XML
IGUAL A ESSE AQ
SENDO QUE OS NOMES ESTAO NO BANCO E E QUERO SALVAR OS NUMEROS NO PROPRIO C# NO LINQ
Chilinger- MembroAvançado
- PONTOS : 4092
REPUTAÇÃO : 42
Idade : 30
Respeito as regras :
Re: [Ajuda]XML
bom pra começar você tem que usar os namespace
para salvar existe varias forma eu particularmente gosto de usar o XDocument onde e possível escreve todas a estrutura
os elementos atributos valores e etc e por padrão o encoding ja vem com utf-8
para salvar dados xml usando XDocument que e pertencente do namespace System.Xml.Linq basta fazer uma variável local do tipo XDocument
e passar um novo XDocument com os elementos e atributos desejados
ele irar escreve um documento xml assim
logo depois basta usar o método comando "como queira chamar" Save basta especificar o local onde será salvo como parâmetro
doc.Save(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + ".xml");
e seu documento estará salvo
para fazer a leitura desse documento usando linq e importante você saiba o básico de pesquisa usando o linq
basta fazer uma variável local do tipo XDocument e usar o XDocument.Load especificando o local do documento como parâmetro
faça uma variável do tipo var usaremos o linq usando from um nome qualquer e indicaremos onde vai ser feito essa leitura no caso
doc.Descendants("Information") no caso tudo que estiver dentro do elemento Information
selecionamos os Descendants de Information
e leitura já esta feita basta pegar cada elemento e ler os atributos
usando o Debug.Log como exemplo usando load.ElementAt(0) ele sempre será 0
pegaremos o read.ElementAt(0) esse sim mudar de índice no caso será quantos atributos que estiver dentro de Information
especificamos os atributos e pegaremos o valor
pronto :D Like :D
- Código:
using System.IO;
using System.Xml.Linq;
using System.Linq;
using System;
para salvar existe varias forma eu particularmente gosto de usar o XDocument onde e possível escreve todas a estrutura
os elementos atributos valores e etc e por padrão o encoding ja vem com utf-8
para salvar dados xml usando XDocument que e pertencente do namespace System.Xml.Linq basta fazer uma variável local do tipo XDocument
e passar um novo XDocument com os elementos e atributos desejados
- Código:
XDocument doc = new XDocument(new XElement("Information",
new XElement("Data", new XAttribute("Nome", "exemplo1"), new XAttribute("Kills", 85), new XAttribute("reputação", 10)),
new XElement("Data", new XAttribute("Nome", "exemplo2"), new XAttribute("Kills", 10), new XAttribute("reputação", 5)),
new XElement("Data", new XAttribute("Nome", "exemplo3"), new XAttribute("Kills", 105), new XAttribute("reputação", 20)),
new XElement("Data", new XAttribute("Nome", "exemplo4"), new XAttribute("Kills", 8854), new XAttribute("reputação", 100))));
ele irar escreve um documento xml assim
- Código:
<?xml version="1.0" encoding="utf-8"?>
<Information>
<Data Nome="exemplo1" Kills="85" reputação="10" />
<Data Nome="exemplo2" Kills="10" reputação="5" />
<Data Nome="exemplo3" Kills="105" reputação="20" />
<Data Nome="exemplo4" Kills="8854" reputação="100" />
</Information>
logo depois basta usar o método comando "como queira chamar" Save basta especificar o local onde será salvo como parâmetro
doc.Save(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + ".xml");
e seu documento estará salvo
para fazer a leitura desse documento usando linq e importante você saiba o básico de pesquisa usando o linq
basta fazer uma variável local do tipo XDocument e usar o XDocument.Load especificando o local do documento como parâmetro
faça uma variável do tipo var usaremos o linq usando from um nome qualquer e indicaremos onde vai ser feito essa leitura no caso
doc.Descendants("Information") no caso tudo que estiver dentro do elemento Information
selecionamos os Descendants de Information
- Código:
XDocument doc = XDocument.Load(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "save3291.xml");
var load = from currentDoc in doc.Descendants("Information")
select new
{
read = currentDoc.Descendants("Information").Descendants()
};
e leitura já esta feita basta pegar cada elemento e ler os atributos
usando o Debug.Log como exemplo usando load.ElementAt(0) ele sempre será 0
pegaremos o read.ElementAt(0) esse sim mudar de índice no caso será quantos atributos que estiver dentro de Information
especificamos os atributos e pegaremos o valor
- Código:
Debug.Log(load.ElementAt(0).read.ElementAt(0).Attribute("Nome").Value);
Debug.Log(load.ElementAt(0).read.ElementAt(0).Attribute("Kills").Value);
Debug.Log(load.ElementAt(0).read.ElementAt(0).Attribute("reputação").Value);
Debug.Log(load.ElementAt(0).read.ElementAt(1).Attribute("Nome").Value);
Debug.Log(load.ElementAt(0).read.ElementAt(1).Attribute("Kills").Value);
Debug.Log(load.ElementAt(0).read.ElementAt(1).Attribute("reputação").Value);
Debug.Log(load.ElementAt(0).read.ElementAt(2).Attribute("Nome").Value);
Debug.Log(load.ElementAt(0).read.ElementAt(2).Attribute("Kills").Value);
Debug.Log(load.ElementAt(0).read.ElementAt(2).Attribute("reputação").Value);
pronto :D Like :D
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: [Ajuda]XML
obg mas minha duvida e exemplo eu vou fazer isso de outra forma mas nao conheço bem a funçao entao queria saber como vc me mostrou eu irei salvar em binario e se for acrescentado (era 10 ganhei mas 20) como puxo do banco nao ira ter problemas ?
Chilinger- MembroAvançado
- PONTOS : 4092
REPUTAÇÃO : 42
Idade : 30
Respeito as regras :
Tópicos semelhantes
» [AJUDA]Preciso de ajuda em um script relacionado ao vídeo Sistema de escolha de personagen
» Ajuda Urgente como chamo a animação no script alguém poderia dar uma ajuda???
» [Ajuda] Preciso de ajuda para controlar e alterar o valor de Lerp de varios objetos
» [AJUDA]Quero Ajuda poque esse script so da erro!
» Ajuda com IA
» Ajuda Urgente como chamo a animação no script alguém poderia dar uma ajuda???
» [Ajuda] Preciso de ajuda para controlar e alterar o valor de Lerp de varios objetos
» [AJUDA]Quero Ajuda poque esse script so da erro!
» Ajuda com IA
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos