如何在c#中仅从文件中获取xml?
我在使用XmlReader解析文件时遇到问题。我有一个包含如下信息的文件:如何在c#中仅从文件中获取xml?,c#,xml,C#,Xml,我在使用XmlReader解析文件时遇到问题。我有一个包含如下信息的文件: <Users> <User> <Email>email</Email> <Key>23456</Key> </User> </Users> asdfsof48f43uf489f3yf3y39fh3f489f3hf94[t]45.54tv,]5t 我在加密字节开始的第行得到了“System.Xml.xmleexception”
<Users>
<User>
<Email>email</Email>
<Key>23456</Key>
</User>
</Users>
asdfsof48f43uf489f3yf3y39fh3f489f3hf94[t]45.54tv,]5t
我在加密字节开始的第行得到了“System.Xml.xmleexception”。
我的问题是:如何仅检索xml部分和byte[]部分?如果加密数据始终是最后一行,您可以使用下面的代码段来读取数据的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
}
你可以做字符串解析
int start, end;
string myFile = File.ReadAllText("...");
start = myFile .IndexOf("<Users>");
end = myFile .IndexOf("</Users>") + 8;
myFile = myFile.Substring(start, end-start);
int开始,结束;
字符串myFile=File.ReadAllText(“…”);
start=myFile.IndexOf(“”);
end=myFile.IndexOf(“”+8;
myFile=myFile.Substring(start,end-start);
此时,如果需要,可以将其加载到xml文档中。这一切都取决于您是否100%确定文件格式。这是一个非常脆弱的答案,因此,如果您对输入文件没有完全信任,请不要使用它。为什么
字节[]
数组不包含XML标记?谁控制文件的生成,您能说服他们生成更有用的文件格式,例如,两个单独的文件或将最终数据放在XML中?文件是否发布为整个XML。发布的部分不是格式良好的xml,因此如果没有更多信息,人们会认为该文件无效。它始终是根节点吗?我认为XmlReader.ReadSubTree()
是一种有用的方法。使用此选项,您只能读取“用户”树,而不会读取更多内容。
int start, end;
string myFile = File.ReadAllText("...");
start = myFile .IndexOf("<Users>");
end = myFile .IndexOf("</Users>") + 8;
myFile = myFile.Substring(start, end-start);