2012-02-21 2 views
0

Linq 라이브러리를 사용하여 VB.NET에서 다음 XML 파일을 열려고했습니다.VB.NET을 사용하여 사이트 맵을 읽는 방법

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="http://wegotflash.com/sitemap.xsl"?> 
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> 
    <url> 
     <loc>http://wegotflash.com</loc> 
     <lastmod>2012-02-19</lastmod> 
     <changefreq>daily</changefreq> 
     <priority>1</priority> 
    </url> 
    <url> 
     <loc>http://wegotflash.com/cat/1/shooter/newest-1</loc> 
     <lastmod>2012-02-19</lastmod> 
     <changefreq>daily</changefreq> 
     <priority>0.8</priority> 
    </url> 
</urlset> 

나는 일반 XML 파일과 작품을 사용하고 코드,하지만 난 루트 노드에 xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" 속성을 추가 할 때마다, 아무것도 응용 프로그램에서 반환지고 있습니다.

Dim XMLFile As XDocument = XDocument.Load(TextBox1.Text) 
For Each url As XElement In XMLFile.Descendants("url") 
    If url.HasElements Then 
     MessageBox.Show(url.Element("loc").Value) 
    End If 
Next 

답변

1

sitemap.xml는 기본 네임 스페이스 http://www.sitemaps.org/schemas/sitemap/0.9을 가지고 있기 때문에입니다 다음은 XML 파일을 읽고있다 VB.NET 코드입니다. 당신은 다음, XNamespace 정의 쿼리에서 사용한다 즉 :

C# 코드 :

XNamespace ns = "http://www.sitemaps.org/schemas/sitemap/0.9"; 
foreach (var element in XMLFile.Descendants(ns + "url")) 
{ 
    ... 
} 
관련 문제