2014-12-18 4 views
1

나는 템플릿과 같은 .htm 파일을 가지고 있으며 내용을 읽고 페이지의 특정 부분을 업데이트하려고합니다. 파일에는 일반적인 html 형식이 있습니다. 어떤 점에서 특수 형식 문자열 {0}을 추가하여 형식을 지정할 수 있습니다. 또한 나는 {0}이 유일한 하나의 사건임을 확인했습니다.파일에서로드 된 텍스트의 서식을 지정하는 방법은 무엇입니까?

나는 다음을 시도했지만 나에게 예외 Input string was not in a correct format가 발생했습니다

sText = @File.ReadAllText("template.htm")); 
formated = string.Format(sText, "Add some additional text here"); 

이를 구현하는 올바른 방법이 될 것이다?

감사

편집

변수의 내용을 (디버그)과 같이 시작합니다

"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\"><head>\r\n <title></title>\r\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\r\n <style type=\"text/css\">\r\nbody {\r\n margin: 0;\r\n mso-line-height-rule: exactly;\r\n padding: 0;\r\n min-width: 100%;\r\n}\r\ntable {\r\n border-collapse: collapse;\r\n border-spacing: 0;\r\n}\r\ntd {\r\n padding: 0;\r\n vertical-align: top;\r\n}\r\n.spacer,\r\n.border {\r\n font-size: 1px;\r\n line-height: 1px;\r\n}\r\n.spacer {\r\n width: 100%;\r\n}\r\nimg {\r\n border: 0;\r\n -ms-interpolation-mode: bicubic;\r\n}\r\n.image {\r\n font-size: 0;\r\n Margin-bottom: 24px;\r\n}\r\n.image img {\r\n display: block;\r\n}\r\n.logo {\r\n mso-line-height-rule: at-least;\r\n}\r\n.logo img {\r\n display: block;\r\n}\r\nstrong {\r\n font-weight: 

편집 2

을 그냥 경우를 들어 이런 사람을 찾는 사람들은 실제로 HTMLAgilityPack라고 불리는 것을 발견하고 내가 필요한 것을 정확하게 보았습니다!

+0

이 문제를 일으키는 문자가 template.htm에 포함되어있는 것은 의심 스럽습니다. – dotnetstep

+0

u는 함수 sText.Replace ("{0}", "new string")를 대체하려고 했습니까? HTML은 일부 이중 인용 부호 등을 가질 것입니다. 그게 내가 인식 할 수없는 것 같아요. – Aswartha

+1

@dotnetstep 왜 의심 스럽습니까? html 파일에 '{'또는 '}}'을 사용하는 것은 그리 어렵지 않습니다. 자바 스크립트 함수 또는 스타일. – Grx70

답변

4

string.Format()의 형식 문자열은 작업을 수행하는 데 필요한 많은 문자/패턴을 찾습니다. 거기에 "임의"텍스트를 사용하는 것은 (일반적으로) 매우 위험합니다. 더 나은 (안전한) 솔루션은 다음과 같습니다.

sText = @File.ReadAllText("template.htm")); 
formated = sText.Replace("{0}", "Add some additional text here"); 
+0

답변 해 주셔서 감사합니다. 나는 그것을 시도하고 효과가 있었어 ... – CodeArtist

+1

이 기술을 사용하면 "<>"과 같은 일반 텍스트에서 발생하지 않을 가능성이 매우 적은 마커를 사용하는 것이 좋습니다. – DrKoch

관련 문제