我从其他应用程序获得的XML结构如下:
<uid>1DE23B0B-1601-4E48-B8F5-7D3152A815A1</uid>
<status>1</status>
有什么方法可以使用XMLDocument
获取而不使用的值,实际上我甚至不知道XMLDocument
是否可以使用这些简单加载XML架构。
有任何线索吗?
答案 0 :(得分:2)
由于您的xml格式不正确(有多个根) - 您无法将其加载到XmlDocument
或XDocument
中 - 您将收到解析错误。
但是,如果您在其设置中指定XMLTextReader
,则可以使用ConformanceLevel.Fragment
进行阅读:
var settings = new XmlReaderSettings();
settings.ConformanceLevel = ConformanceLevel.Fragment;
var reader = XmlReader.Create(@"c:\temp\test.xml", settings);
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
var nodeName = reader.Name;
reader.Read();
var value = reader.Value;
}
}
答案 1 :(得分:0)
您可以通过正则表达式解析伪xml,如下所示:
internal class Data
{
public string UId { get; set; }
public string Status { get; set; }
public Data(string text)
{
string strRegex = @"<uid>(.*?)</uid>.*?<status>(.*?)</status>";
Regex myRegex = new Regex(strRegex, RegexOptions.Singleline | RegexOptions.IgnorePatternWhitespace);
var match = myRegex.Match(text);
UId = match.Groups[1].Value;
Status = match.Groups[2].Value;
}
}