Лучший способ найти и заменить формат строки из текстового содержимого html с помощью c#

#c# #html #css

#c# #HTML #css

Вопрос:

Я создаю Windows phone приложение, которое отображает содержимое html в веб-браузере.
У меня есть файл css, в котором мне нужно изменить некоторые значения, которые находятся в специальном формате. Ниже приведен пример моих данных, где вы можете увидеть несколько '.position-page{n}-{n}' тегов стилей, в каждом из которых есть по 3 свойства margin left ,right amp; top .

 </style><style type='text/css'>
 .position-page2-1 {
margin-right: 180px;
margin-left: 180px;
margin-top: 280px;
    }
    .position-page2-2 {
margin-right: 350px;
margin-left: 150px;
margin-top: 20px;
    }
    .position-page2-3 {
margin-right: 180px;
margin-left: 220px;
margin-top: 80px;
    }
    .position-page2-4 {
margin-right: 180px;
margin-left: 220px;
margin-top: -20px;
    }
    .position-page2-5 {
margin-right: 350px;
margin-left: 140px;
margin-top: -10px;
color: #5ED6FB;
    }
      .page2-2 {
font-size: 20px;
text-align: justify;
line-height: 25px;
    }
      .page2-3 {
font-size: 15px;
text-align: justify;
line-height: 20px;

     }
     .page2-4 {
font-size: 15px;
text-align: justify;
line-height: 20px;
     }
      .page2-5 {
font-size: 20px;
text-align: justify;
line-height: 25px;
     }
</style>
  

Мы получаем этот текст в стиле в качестве ответа от стороннего сервиса.

В соответствии с нашим требованием мне нужно уменьшить значение margin до некоторого процента. Предположим, что 150 пикселей — это поле, которое я хочу заменить на 30 пикселей, мне нужно заменить каждое значение поля на currentmargin / 5 пикселей.

Каков наилучший способ сделать это?

Комментарии:

1. Пожалуйста, добавьте больше деталей — имеете ли вы контроль над созданием файла css в первую очередь или он получен от третьей стороны? Вы создаете настольное приложение с WebBrowserControl или создаете веб-сайт, который пользователи посещают с помощью браузера?

2. В регулярных выражениях нет математики (которую вы можете использовать для поиска этого). БОЛЬШОЕ НО. Если вы можете использовать Perl, вы можете захватывать выражения регулярных выражений и использовать их для создания новой строки. Идея отсюда . Конечно, вы можете сделать то же самое на C # (снова с регулярным выражением, не нужно разбирать CSS), просто это будет дольше.

3. я создаю приложение для Windows phone, чтобы я не мог использовать perl здесь. Если я получу его с помощью регулярного выражения, это будет очень полезно.

4. @user574632 стиль взят из ответа сторонней службы. Чтобы он соответствовал нашему экрану [Windows phone], нам просто нужно отредактировать его, как сказано в вопросе.

5. В этом случае я бы рассмотрел анализатор CCS, такой как этот: github.com/TylerBrinks/ExCSS

Ответ №1:

Возможно ли для вас использовать масштаб области просмотра?

В этом случае вам вообще не следует ничего менять в css.

 <meta name="viewport" content="width=320, initial-scale=1">
  

Вот дополнительная информация об адаптации дизайна, предоставленная Microsoft:

Управление окном просмотра браузера Windows Phone