我在使用XmlReader解析文件时遇到问题。我有一个包含以下信息的文件:
<Users>
<User>
<Email>email</Email>
<Key>23456</Key>
</User>
</Users>
asdfsof48f43uf489f3yf3y39fh3f489f3hf94[t]45.54tv,]5t
文件包含xml值,然后是byte []数组中的加密数据。 我遇到的问题是当我使用时:
using (var reader = XmlReader.Create(fileName))
{
while (reader.Read())
{
//parsing
}
}
我在加密字节开始的行处得到'System.Xml.XmlException'。 我的问题是:如何只检索xml部分而只检索byte []部分?
答案 0 :(得分:0)
如果加密数据始终是最后一行,您可以使用下面的代码段只读取XML部分数据,因为XML数据的大小有限
var fileLines = File.ReadAllLines(@"c:\temp\file.txt");
var xmlFromFile = string.Join("", fileLines, 0, fileLines.Length - 1);
using (var reader = XmlReader.Create(new StringReader(xmlFromFile)))
{
// Your logic goes here
}
答案 1 :(得分:0)
你可以做字符串解析...
int start, end;
string myFile = File.ReadAllText("...");
start = myFile .IndexOf("<Users>");
end = myFile .IndexOf("</Users>") + 8;
myFile = myFile.Substring(start, end-start);
此时,您可以根据需要将其加载到xml文档中。这一切都取决于您对文件格式100%确定。这是一个非常脆弱的答案,所以如果您对输入文件没有完全信任,请不要使用它。