【发布时间】:2014-08-12 22:04:09
【问题描述】:
我试图剥离一些 XML 并仅获取与字段相关的值,但是 XML 不使用小于号和大于号。我尝试在字段名称周围添加子字符串(在下面的例子中是日期),这很好用。
<my:Date xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2014-07-27T23:04:34">2014-08-15</my:Date>
但是,我无法围绕小于和大于子串。我的代码如下:
public string processReportXML(string field, string xml)
{
try
{
string result = xml.Substring(xml.IndexOf(field));
int resultIndex = result.LastIndexOf(field);
if (resultIndex != -1) result = result.Substring(0, resultIndex);
result = result.Substring(result.IndexOf(">"));
resultIndex = result.IndexOf("<");
if (resultIndex != -1) result = result.Substring(0, resultIndex);
return field + ": " + result.Substring(4) + "\n";
}
catch (Exception e)
{
return field + " failed\n";
}
}
我在一个测试项目中尝试过,它工作正常,但在我的实际 Web 服务中,我总是得到索引应该大于 0。我也尝试过使用正则表达式替换字符,但这也没有用。
result = Regex.Replace(result, "&(?!(amp|apos|quot|lt|gt);)", "hidoesthiswork?");
【问题讨论】: