Загрузить XML-документ в Windows CE с помощью C # - PullRequest
2 голосов
/ 16 сентября 2011

Я пытаюсь загрузить XML-документ в Windows CE, используя C #, однако я продолжаю получать некоторые странные ошибки при отладке. Вот мой код:

using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;

namespace cpap3
{
public class Program
{
    public static void Display()
    {

        XmlDocument docXML = new XmlDocument();

        docXML.Load(Environment.GetFolderPath(Environment.SpecialFolder.Programs)+"\\modulos.xml");


        XmlElement nodRoot = docXML.DocumentElement;

        XmlNodeList nodItems = nodRoot.GetElementsByTagName("Modulos");

        for (int i = 0; i < nodItems.Count; i++)
            Console.WriteLine(nodItems[i].InnerXml);

        for (int i = 0; i < nodItems.Count; i++)
            Console.WriteLine(nodItems[i].InnerXml);

    }

    static int Main(string[] args)
    {

        Display();           

        return 0;
    }
}
}

Я что-то не так делаю? Файл XML находится в нужном месте, и я пробовал несколько мест для файла. Это ошибка, которую я получаю.

{"Невозможно отобразить сообщение об ошибке, так как не удается найти дополнительную сборку ресурса, содержащую его. Не удается отобразить сообщение об ошибке, поскольку не удается найти дополнительную сборку ресурса, содержащую его" "}

Ошибка возникает при загрузке файла XML:

docXML.Load (Environment.GetFolderPath (Environment.SpecialFolder.Programs) + "\ modulos.xml");

Вот деталь исключения:

System.Xml.XmlException was unhandled
  Message="An error message cannot be displayed because an optional resource assembly   containing it cannot be found An error message cannot be displayed because an optional resource assembly containing it cannot be found"
  LineNumber=1
  LinePosition=31
  SourceUri="file:///Windows/Programs/modulos.xml"
  StackTrace:
at System.Xml.XmlTextReaderImpl.Throw()
at System.Xml.XmlTextReaderImpl.Throw()
at System.Xml.XmlTextReaderImpl.CheckEncoding()
at System.Xml.XmlTextReaderImpl.ParseXmlDeclaration()
at System.Xml.XmlTextReaderImpl.Read()
at System.Xml.XmlLoader.Load()
at System.Xml.XmlDocument.Load()
at System.Xml.XmlDocument.Load()
at ConsoleApplication3.Program.Display()
at ConsoleApplication3.Program.Main()

--------------- EDIT --------------

Это заняло у меня некоторое время, но теперь у меня есть реальные сообщения об ошибках:) ... Вот фактическая ошибка.

"System does not support 'iso-8859-1' encoding. Line 1, position 31." 

Я пытался сохранить свой файл с разными кодировками, но продолжаю получать ту же ошибку. Любые решения?

--------------- EDIT ----------------- Я решил это: D. Я менял кодировку с помощью блокнота, но я забыл, что я записал тег кодировки в файл XML, и это вызывало эту проблему. Глупая ошибка. (

Ответы [ 2 ]

2 голосов
/ 19 сентября 2011

Ну, на самом деле вам нужно поговорить с тем, кто создал образ вашей ОС WinCE, чтобы включить также «.Net Compact Framework 3.5 Локализованные строковые ресурсы», по умолчанию у вас будет en-US, но вы можете выбрать и что-то еще например: португальский. Параметр находится в представлении элементов каталога -> Основная ОС -> Windows Embedded Compact -> Разработка приложений и служб -> .NET Compact Framework 3.5 -> .Net Compact Framework 3.5 -> .Net Compact Framework 3.5 Локализованные строковые ресурсы

См. Прикрепленное изображение: Catalog Item View

Вам придется переделать образ ОС, а также SDK, если вы его используете. После этого у вас больше не должно быть этой ошибки.

1 голос
/ 16 сентября 2011

Вы на самом деле привязаны к отладчику?Я спрашиваю, потому что у вас нет доступных сообщений об исключениях.Они автоматически развертываются при отладке (CAB-файл NETCFv35.Messages.EN.cab находится по адресу C:\Program Files (x86)\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE\Diagnostics).

Мы знаем, что это исключение XmlException, поэтому оно не имеет ничего общегоместоположение файла или его блокировка (в этом случае вы получите исключение другого типа).Скорее всего, в файле, который вы пытаетесь загрузить, указан неверный или неправильно сформированный XML.Чтобы точно знать, вам нужно опубликовать сам XML, но в качестве теста просто замените ваш файл простым XML-файлом, содержащим только определение и корневой узел, и посмотрите, что произойдет.

...