我试图剥离一些XML,并仅获取与字段相关的值,但XML不使用小于号和大于号。 我尝试在字段名称周围进行子字符串操作(在下面的情况下是Date),这很好用。
<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?");