解析图像的XML文件

时间:2014-03-28 20:10:29

标签: c# sql-server xml

我有一个包含图像的XML文件,图像的格式为[[ID]],其中ID是存储在数据库中的图像的唯一标识符。我想解析这个[[]]标签的XML文件,并将标签替换为将从数据库中提取的图像。到目前为止,这就是我所做的

 string xmlUrl = Server.MapPath("/Model Report.xsl");
 XmlDocument doc = new XmlDocument();
 doc.Load(xmlUrl);

现在想解析[[]]标签的doc。 XML文件中的图像如下所示(这只是XML文件的一部分。)

 <table-graphics.as-jpeg datatype="string" display-name="As JPEG">[[ID]]</table-graphics.as-jpeg>

真的很感激你的帮助。

2 个答案:

答案 0 :(得分:0)

查看C#中的XPath支持以帮助解析。

[...编辑...] 您将要查找 table-graphics.as-jpeg 元素,然后获取其文本内容。 (不要在脑海中使用确切的语法 - 我总是要自己查一下。)

答案 1 :(得分:0)

我还不清楚你在问什么。听起来像是在尝试将XML文档视为纯文本文档;在这种情况下:

string xmlUrl = Server.MapPath("/Model Report.xsl");
string raw = new WebClient().DownloadString(xmlUrl);

var output = new List<string>();

int left = 0;
int right = 0;
while ((left = raw.IndexOf("[[", right)) >= 0) {
    int right = raw.IndexOf("]]", left);
    if (right > left) output.Add(raw.Substring(left+2, right-left-2));
}

应该在文档中提供所有 [[ something ]] 模式。

如果您对该文档有更多了解,例如所有ID都在table-graphics.as-jpeg标记中,您应该使用XPath支持,如Mark所说:

string xmlUrl = Server.MapPath("/Model Report.xsl");
XmlDocument doc = new XmlDocument();
doc.Load(xmlUrl);
foreach (XmlNode node in doc.SelectNodes("//table-graphics.as-jpeg"))
{
    node.InnerText . . .
}