我有一个包含图像的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>
真的很感激你的帮助。
答案 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 . . .
}