문제

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 () 메소드 호출을 사용하여 문자열 표현을 얻으십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top