2013-09-05 35 views
0

使用C#,我需要從某個URL獲取一些數據,然後生成一個非常基本的.html文件,該文件顯示可用的大學課程列表。從URL的響應是XML,看起來像這樣將XML響應處理成.html文件

<ArrayOfCourse xmlns="http://schemas.datacontract.org/2004/07/Demo.Samples"> 
    <Course> 
     <codeField>String content</codeField> 
     <semesterField>String content</semesterField> 
     <titleField>String content</titleField> 
    </Course> 
    ... 
</ArrayOfCourse> 

,我應該使用類像的XDocument和XmlTextWriter的產生所需的HTML我已經指示。

<?xml version="1.0" encoding="utf-8"?> 
<!--courses--> 
<html> 
    <head> 
     <title>courses</title> 
    </head> 
    <body> 
     <h1>courses</h1> 
     <p>COMPSCI 101: <b>Principles of Programming</b><br />Summer School; Semester 1; Semester 2</p> 
     ... 
     ... 
    </body> 

我的問題是,你如何去這樣做呢?更具體地說,用什麼方法將每個標籤從響應中取出?任何人都可以給我任何有用的參考例如?我已經看過自己,但似乎無法找到任何有用的東西。

+0

這是一個家庭作業,或者您已被導向到使用的XDocument和XmlTextWriter的一個項目?這是用XSLT更恰當地完成的事情。 – Tim

回答

0
XDocument xml = XDocument.Load(filename); 

var q = from b in xml.Descendants("product") 
     select new 
     { 
      name = (string)b.Element("name"), 
      price = (double?)b.Element("price"),      
      extra = (string)b.Element("extra1"), 
      deeplink = (string)b.Element("deepLink")     
     }; 

XDocument doc = XDocument.Load("test.xml"); 
XNamespace ns = "http://ns.adobe.com/xfdf/"; 

foreach (XElement element in doc.Root 
           .Element(ns + "fields") 
           .Elements(ns + "field")) 
{ 
    Console.WriteLine("Name: {0}; Value: {1}", 
         (string) element.Attribute("name"), 
         (string) element.Element(ns + "value")); 
}