Jak vložím trochu XML do XDocument pomocí Visual Basic?

hlasů
3

Snažím se vytvořit sitemap v projektu ASP.NET MVC.

Tento kód v mém řadič uzlu ...

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

(Tady je obrázek, protože přetečení zásobníku nebarví VB kód dobře)

Visual

... vytváří tuto chybu:

Tato operace by vytvořila nesprávně strukturovaný dokument.

To by nevěděl , kde dodat, že obsah.

Jak mohu říct, že vložit ten kousek XML do <urlset>?

Položena 01/05/2009 v 01:22
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
5

Proč ne vyplňte ji úplně jiným xml doslovném díry?

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>
Odpovězeno 01/05/2009 v 01:57
zdroj uživatelem

hlasů
5

Je třeba jej přidat do kořenového elementu v dokumentu (root):

map.Root.Add(...)
Odpovězeno 01/05/2009 v 01:39
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more