Как мне заменить значения в файле CSS на C #?

#c# #css #.net

#c# #css — код #.net

Вопрос:

У меня есть CSS-файл со следующими данными:

 @font-face{font-family:"AkzidenzGroteskBE-Bold";font-weight: bold; font-style: normal;src:url(/AkzidenzGroteskBE-Bold.otf);}
@font-face{font-family:"AkzidenzGroteskBE-Regular";font-weight: normal; font-style: normal;src:url(/AkzidenzGroteskBE-Regular.otf);}
@font-face{font-family:"AmericanTypewriterStd-Med";font-weight: normal; font-style: normal;src:url(/AmericanTypewriterStd-Med.otf);}
@font-face{font-family:"AvantGarde Bold";font-weight: bold; font-style: normal;src:url(/AvantGarde-Bold.ttf);}
@font-face{font-family:"FranklinGothicLT-BookCnd";font-weight: normal; font-style: normal;src:url(/FranklinGothicLT-BookCnd.otf);}
 

Я хочу сделать это:

 @font-face{font-family:"AkzidenzGroteskBE-Bold";font-weight: bold; font-style: normal;src:url(../Fonts/AkzidenzGroteskBE-Bold.otf);}
@font-face{font-family:"AkzidenzGroteskBE-Regular";font-weight: normal; font-style: normal;src:url(../Fonts/AkzidenzGroteskBE-Regular.otf);}
@font-face{font-family:"AmericanTypewriterStd-Med";font-weight: normal; font-style: normal;src:url(../Fonts/AmericanTypewriterStd-Med.otf);}
@font-face{font-family:"AvantGarde Bold";font-weight: bold; font-style: normal;src:url(../Fonts/AvantGarde-Bold.ttf);}
@font-face{font-family:"FranklinGothicLT-BookCnd";font-weight: normal; font-style: normal;src:url(../Fonts/FranklinGothicLT-BookCnd.otf);}
 

Я добавил ../Fonts/ ссылку в конце каждой строки.

Я пытаюсь прочитать каждую строку и использовать несколько substring , чтобы узнать значение между ( и );} .

Это становится очень сложным. Пожалуйста, предоставьте простое решение.

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

1. это зависит от структуры вашего проекта. Путь к вашим шрифтам будет меняться в зависимости от ваших папок. Вам нужно показать нам, где находятся ваши шрифты, а также ваш css-файл.

2. То, что у вас есть выше, — это простая замена строки. Похоже, ты все усложняешь. File.ReadAllText(filename).Replace(":url(/Fonts", ":url(../Fonts") Дает ли вам то, что вы ищете?

3. @Corey я думаю, вы что-то неправильно поняли…

4. На самом деле, в основном программном обеспечении, создающем файл, отсутствует ../Fonts/ часть, поэтому меня просят вставить путь вручную с помощью программирования. Потому что без правильного пути ссылка недействительна.

5. @Corey — В основном файле нет того /Fonts , что делает каждую строку уникальной. Вот в чем проблема. Если бы это было XML так, это было бы легко.

Ответ №1:

Проверьте, работает ли это

 YourDiv.Attributes.CssStyle.Add("src", "url(../Fonts/AkzidenzGroteskBE-Bold.otf)");
 

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

1. Это заменит только одно значение, верно? У меня есть несколько уникальных значений

2. Да, это заменит только это значение. Для каждого значения вам нужно добавить еще одну строку с новым URL..