كيف يمكنني إدراج قليلا من XML إلى XDocument باستخدام Visual Basic؟
-
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(...)
نصائح أخرى
لماذا لا تعبئته تماما مع حفرة الحرفي أكس آخر؟
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