XML响应处理成.html文件

时间:2013-09-05 11:21:28

标签: html xml linq-to-xml

使用C#,我需要从某个URL中获取一些数据,然后生成一个非常基本的.html文件,显示可用的大学课程列表。 URL的响应是XML,看起来像这样

<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>

我的问题是,你是怎么做的?更具体地说,使用什么方法从响应中获取每个标记?有人可以给我任何有用的参考资料吗?我自己看了看,但似乎找不到任何有用的东西。

1 个答案:

答案 0 :(得分: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"));
}