Как лучше всего обнаружить кодирование в XML-файле?

Вы можете использовать оператор $ inc из mongodb

Использование Rails

CollectionName.collection.update_many({query}, {"$inc": {"field_name": value_to_inc_with}})

8
задан Peter Lillevold 12 March 2009 в 09:26
поделиться

1 ответ

Хорошо, я должен был думать об этом ранее. Оба XmlTextReader (который дает нам Кодирование), и XmlReader. Создайте (который позволяет нам указывать кодирование), принимает Поток. Таким образом как насчет первого открытия FileStream и затем используют это и с XmlTextReader и с XmlReader, как это:

using (var txtreader = new FileStream(filepath, FileMode.Open))
{
    using (var xmlreader = new XmlTextReader(txtreader))
    {
        // Read in the encoding info
        xmlreader.MoveToContent();
        var encoding = xmlreader.Encoding;

        // Rewind to the beginning
        txtreader.Seek(0, SeekOrigin.Begin);

        var settings = new XmlReaderSettings { NameTable = new NameTable() };
        var xmlns = new XmlNamespaceManager(settings.NameTable);
        var context = new XmlParserContext(null, xmlns, "", XmlSpace.Default,
                 encoding);

        using (var reader = XmlReader.Create(txtreader, settings, context))
        {
            return XElement.Load(reader);
        }
    }
}

Это работает как очарование. Чтение XML-файлов кодирующим независимым способом должно было быть более изящным, но по крайней мере мне сходит с рук только один открытый файл.

9
ответ дан 5 December 2019 в 19:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: