Node.js puppeteer - выборка данных из текстовых файлов без тегов - PullRequest
0 голосов
/ 30 апреля 2019

Я использую node.js и puppeteer, чтобы получить некоторые данные из текстового файла.В теле файла есть теги, и я могу получить данные ... но в заголовке у меня есть что-то вроде этого:

<ABC-HEADER>0123
<DATETIME>201811
NUMBER:     0123
TYPE:   ABC
DATE:   20181114

SENDER:

    COMPANY DATA:   
        NAME:           Company
        STATE:          WI

    BUSINESS ADDRESS:   
        STREET 1:       PO BOX 123
        STREET 2:       V123
        CITY:           VALLEY 123
        STATE:          WI
        ZIP:            123
        BUSINESS PHONE:     123

    OTHER VALUES:
        OTHER NUMBER:   068-16975
        FILM NUMBER:    13362274

    MAIL ADDRESS:   
        STREET 1:       PO BOX 456
        STREET 2:       V456
        CITY:           VALLEY 456
        STATE:          WI
        ZIP:            456
</ABC-HEADER>

Как я могу получить эти значения?!

const records = await page.evaluate( () =>
  {
      const page = document.createElement( 'html' );
      const page_content = document.body.textContent;

      page.innerHTML = page_content;

      ...

  });

1 Ответ

0 голосов
/ 02 мая 2019

Если у вас уже есть эти данные в строке, я бы порекомендовал , а не использовать кукловода для анализа данных, так как данные не являются допустимым HTML (даже не допустимым XML). Вместо этого вы должны использовать регулярное выражение (возможно, в дополнение к некоторому разделению строк).

Пример

const data = '<ABC-HEADER>...'; //

const otherNumber = data.match(/OTHER NUMBER: +(\S.*)/);
console.log(otherNumber[1]); // 068-16975

const filmNumber = data.match(/FILM NUMBER: +(\S.*)/);
console.log(filmNumber[1]); // 13362274

При этом используется функция match для сопоставления части строки с данным регулярным выражением. Выражения соответствуют любой конкретной строке (например, OTHER NUMBER, за которой следует хотя бы один пробел (+), за которым следует один символ, отличный от пробела (\S), за которым следуют любые данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...