كيف يمكنني إدراج قليلا من XML إلى XDocument باستخدام Visual Basic؟

StackOverflow https://stackoverflow.com/questions/809706

سؤال

وأنا أحاول أن إنشاء خريطة في مشروع 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(...)

نصائح أخرى

لماذا لا تعبئته تماما مع حفرة الحرفي أكس آخر؟

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>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top