У меня проблема с некоторыми файлами XML.XML не полностью написан
У меня есть более 500 текстовых файлов, которые я читаю и извлекаю данные и экспортирую их в XML. Однако генерируемый XML усекается наполовину.
<Maps>
<Location>
</Location>
<Locat
Он усекает несколько иначе. Когда я пытаюсь открыть его в блокноте, он, кажется, использует всю страницу блокнота. Это может быть из-за проблемы с памятью, так как у меня довольно большой объем данных. Есть ли какая-нибудь работа вокруг. Я бегу программы на виртуальной машине
private XmlTextWriter writer = new XmlTextWriter("Maps.xml", System.Text.Encoding.UTF8);
static void Main(string[] args)
{
Program prog = new Program();
String[] filenames = Directory.GetFiles(@"maps_new");
prog.writer.WriteStartDocument();
prog.writer.WriteStartElement("Maps");
foreach (String file in filenames)
{
prog.extractToXML(file);
}
prog.writer.WriteEndElement();
prog.writer.WriteEndDocument();
}
public void extractToXML(String filename)
{
XPathNodeIterator NodeIter;
XPathDocument xmldoc = new XPathDocument(filename);
XPathNavigator nav = xmldoc.CreateNavigator();
String query = "//Schema/@tree";
NodeIter = nav.Select(query);
writer.WriteStartElement("file");
writer.WriteStartAttribute("name");
writer.WriteString(extractFileName(filename));
writer.WriteEndAttribute();
while (NodeIter.MoveNext())
{
writer.WriteStartElement("type");
writer.WriteString(extractFileName(NodeIter.Current.Value.ToString()));
writer.WriteEndElement();
}
NodeIter = nav.Select("//Location");
while (NodeIter.MoveNext())
{
writer.WriteStartElement("Location");
writer.WriteString(NodeIter.Current.Value.ToString());
writer.WriteEndElement();
}
writer.WriteEndElement();
}
что ваше сотрудничество de для этого преобразования? Отправьте его здесь, это будет полезно! – David
попробуйте блокнот ++ вместо блокнота. возможно, текстовый файл недействителен xml? –
Похоже на усеченный поток, потому что Flush() не назывался там, где он должен быть. –