从XML读取图像

时间:2012-03-11 23:44:09

标签: c# xml

我正在尝试从我的XML文件中读取图像但是当我运行代码时,XML文件中的名称不会传递给我的标记。

当我检查元素以查看我正在渲染的内容时

<img src=".jpg" height="100px" width="100px">

一切似乎都好我只是不明白为什么r.Value没有通过。

XmlTextReader r = new XmlTextReader("books.xml");
StringBuilder sb = new StringBuilder();
while (r.Read())
{
    switch (r.NodeType)
    {
        case XmlNodeType.Element:
            if (r.Name == "Books")
            {
                sb.Append("<table cellpadding=5 cellspacing=2 border=1 >");
                sb.Append("    <tr> <th style=\"text-align:center;\">Title</th> <th style=\"text-align:center;\">ISBN</th> <th style=\"text-align:center;\">Author</th>  ");
                sb.Append("<th style=\"text-align:center;\">Year</th><th style=\"text-align:center;\">Publisher</th> <th style=\"text-align:center;\">Cover</th> </tr>");
            }
            else if (r.Name == "Book")
            {
                sb.Append("    <tr> ");
            }
            else if (r.Name == "Title" ||
                     r.Name == "ISBN" || r.Name == "Author" || r.Name == "Year"
                     || r.Name == "Publisher" || r.Name == "Cover")
            {
                sb.Append("<td>");

                if(r.Name == "Cover")
                {
                    sb.Append("<img src=\"" + r.Value + ".jpg\" height=\"100px\" width=\"100px\" />");
                }
            }  
            break;

        case XmlNodeType.Text:
            if (r.Name == "Cover")
                sb.Append("");
            else
                sb.Append(r.Value);
            break;
    }
}

我的XML文件:

<Books>
    <Book>
        <Title>Angels and Demons</Title>
        <ISBN>9780735643383</ISBN>
        <Author>Dan Brown</Author>
        <Year>2000</Year>
        <Publisher>Pocket Books</Publisher>
        <Cover>images</Cover>
    </Book>
</Books>

1 个答案:

答案 0 :(得分:3)

尝试阅读InnerText属性而不是Value。