Visual Basic을 사용하여 약간의 XML을 XDocument에 삽입하려면 어떻게해야합니까?
-
03-07-2019 - |
문제
ASP.NET MVC 프로젝트에서 사이트 맵을 만들려고합니다.
내 노드 컨트롤러 의이 코드는 ...
Function Sitemap() As ContentResult
Dim db As New EfrDotOrgEntities
Dim Nodes = db.Node.ToList
Dim RequestUrl As Uri = Url.RequestContext.HttpContext.Request.Url
Dim AbsoluteRoot As String = String.Format("{0}://{1}", RequestUrl.Scheme, RequestUrl.Authority)
Dim map As XDocument = <?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
</urlset>
For Each n As Node In Nodes
map.Add(<url>
<loc><%= AbsoluteRoot + Url.RouteUrl("IdOnly", New With {.id = n.Id}) %></loc>
</url>)
Next
Return Content(map.ToString, "text/xml", Encoding.UTF8)
End Function
(스택 오버플로가 VB 코드를 잘 색상하지 않기 때문에 이미지가 있습니다)
...이 오류를 생성합니다.
이 작업은 잘못 구조화 된 문서를 만듭니다.
알지 못할 것입니다 어디 그 내용을 추가하려면.
XML의 비트를 <urlset>
?
해결책
문서 (루트)의 최상위 요소에 추가해야합니다.
map.Root.Add(...)
다른 팁
또 다른 XML 문자 구멍으로 완전히 채우지 않겠습니까?
Dim map As XDocument = <?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<%= From n In Nodes.Cast(Of Node)() _
Select <url>
<loc><%= AbsoluteRoot + Url.RouteUrl("IdOnly", New With {.id = n.Id}) %></loc>
</url> %>
</urlset>
제휴하지 않습니다 StackOverflow