StringBuilder 및 XML 리터럴의 문제
-
06-09-2019 - |
문제
VB 2008의 StringBuilder와 함께 XML 리터럴을 사용하는 데 문제가 있습니다.이 코드를 사용하면 모든 것이 정상입니다.
Dim html As New System.Text.StringBuilder
html.Append(<html><body></body></html>)
MsgBox("hello")
이제 문제는 코드에서 생성 된 무언가를 주위에 html로 래핑하고 싶다는 것입니다.
html.Append(<html><body>)
msgbox("nothing happens")
HTML에 해당 엔드 태그가 없으면, 그 이상의 태그를 넘어서는 것처럼 작용하고 계속 찾고 있습니다.
내가 여기서 잘못하고있는 일이 있습니까?
해결책
XML 리터럴 문에서 올바른 XML을 형성하지 않기 때문에 (예 : 태그를 닫지 않음) 여기에서 XML 리터럴을 사용할 수 없습니다. XML 리터럴이 적절한 XML이거나 또는 코드를 문자열로 사용하도록 코드를 변환해야합니다. 따라서:
html.Append("<html><body>")
msgbox("nothing happens")
다른 팁
나는 VB의 XML 리터럴을 사용한 적이 없지만 많은 XML을 구축했습니다. 나는 stringwriter/xmltextwriter 클래스를 사용하고 싶습니다.
StringBuilder sb = new StringBuilder();
using (StringWriter sw = new StringWriter(sb))
{
XmlTextWriter xw = new XmlTextWriter(sw);
xw.WriteStartElement("html");
xw.WriteStartElement("body");
xw.WriteRaw(contentExp);
...
wr.WriteEndElement(); // body
wr.WriteEndElement(); // html
}
// do something with sb.ToString()?
명백한 직감은 XML 리터럴이 잘 형성된 XML이 필요하다는 것입니다. 물건을 감싸고 싶다면 내장 된 표현을 속이십시오 ...
html.Append(<html><body><%= contentExp %></body></html>)
대답은 아니지만 다시 질문하십시오. String Builder와 함께 XML 리터럴을 사용하는 값은 무엇입니까? 적어도 곡물에 대항하는 것은 적어도 나에게 보인다. 리터럴을 사용하여 XML을 생성 한 다음 문자열이 필요한 경우 .toString () 메소드 호출을 사용하여 문자열 표현을 얻으십시오.
제휴하지 않습니다 StackOverflow