Лучший способ конвертировать текстовый файл ASCII в XML в VB.NET, C # или Javascript? - PullRequest
0 голосов
/ 16 августа 2011

Я не совсем уверен, что это правильный вопрос, который нужно задать, но я скажу вам, что я пытаюсь.У меня есть текстовый файл ASCII с данными о продукте.У него нет заголовков.Я ищу способ преобразования этих данных в файл XML, однако я хочу, чтобы он анализировал одно из полей txt, чтобы включить поле поиска и изменить данные на основе этого поля.Теперь я могу использовать VB.NET, C # или Javascript.Предоставленный пример:

Пример ASCII-данных:

ACE14       1016    ACP, Inc.   Amana® Commercial Convection Express™ Combination Oven
AOC24       1016    ACP, Inc.   Amana® Commercial Microwave Oven, 2400 watts

Пример XML Мне нужно на основе приведенного примера (он будет искать информацию на основе 'ACP, Inc.')

<xml>
  <Product>
     <ProductManufacturer>ACP, Inc.</ProductManufacturer>
     <ProductCode>AMN-ACE14</ProductCode>
     <ProductTitle>Amana Commercial Convection Express Combination Oven</ProductTitle>
  </Product>
<Product>
     <ProductManufacturer>ACP, Inc.</ProductManufacturer>
     <ProductCode>AMN-AOC24</ProductCode>
     <ProductTitle>Amana Commercial Microwave Oven</ProductTitle>
  </Product>

Кто-нибудь указывает мне хорошие образцы?Это дало бы мне хорошее начало.Спасибо.

1 Ответ

4 голосов
/ 16 августа 2011

Вот одно простое решение, но, как я намекал в комментариях, действительно есть много способов сделать это.Выберите один из них в соответствии с вашими требованиями (считывание требований различных типов файлов, таких как это, в несколько разных форматах, а затем поиск библиотеки).

var lines = File.ReadAllLines("D:\\test.txt");
var products = from line in lines
               select new 
               {
                    ProductManufacturer = line.Substring(0,12).Trim(),
                    ProductCode = line.Substring(12, 8).Trim(),
                    Description = line.Substring(20).Trim()
               };              

var xml = new XDocument(new XElement("xml", 
    from p in products
    select new XElement("Product",
        new XElement("ProductManufacturer", p.ProductManufacturer),
        new XElement("ProductCode", p.ProductCode),
        new XElement("Description", p.Description))));

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

...