c# 如何从简单的 XML 模式中获取 XML 标签值

c# how to get XML tag values from a simple XML schema

我有一个 XML 是从其他应用程序那里得到的,它的结构是这样的:

<uid>1DE23B0B-1601-4E48-B8F5-7D3152A815A1</uid>
<status>1</status>

有没有办法使用 XMLDocument 在没有 的情况下如何获取值 ,实际上我什至不知道 XMLDocument 是否可以加载 XML 使用这些简单的架构。

有线索吗?

您可以像这样通过正则表达式解析您的伪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;
    }
}

由于您的 xml 格式不正确(具有多个根)- 您无法将其加载到 XmlDocumentXDocument - 您将遇到解析错误。

但是,如果您在其设置中指定 ConformanceLevel.Fragment,则可以使用 XMLTextReader 阅读它:

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;
    }
}