gpt4 book ai didi

c# - 如何使用 LINQ 和 C# 最好地提取属性值和元素值

转载 作者:数据小太阳 更新时间:2023-10-29 02:26:58 31 4
gpt4 key购买 nike

在我开始之前这是我的第一篇文章,所以如果有什么我做错了或没有做的,请告诉我,我会编辑我的文章

我有一个格式如下的文件。

<Event xmlns='http://schemas.microsoft.com/win/2004/08/events/event'>
<EventData>
<Data Name='SubjectUserSid'>S-1-0-0</Data>
<Data Name='SubjectUserName'>MACHINE$</Data>
<Data Name='SubjectDomainName'>DOMAIN</Data>
<Data Name='SubjectLogonId'>0x0</Data>
<Data Name='TargetUserSid'>S-1-0-0</Data>
<Data Name='TargetUserName'>username</Data>
<Data Name='TargetDomainName'>TDname</Data>
<Data Name='Status'>0x0</Data>
<Data Name='FailureReason'>%%2313</Data>
<Data Name='SubStatus'>0x0</Data>
<Data Name='LogonType'>10</Data>
</EventData>
</Event>

我在想出可以从 XML 中提取值(属性值和相应的元素值)的东西时遇到了一点问题。我是否需要为每个属性声明一个语句,或者我可以返回一个列表并循环遍历这些值吗?

编辑:需要提取这些值,以便我可以将它们发送到数据库。我想为此尝试使用 LINQ,但 Xpath 也可以工作

EDIT2:谢谢你的三个好答案,我没有要求。尚未投票赞成答案的声誉,我需要在测试之前到达我的开发机器,但这确实看起来是我正在寻找的东西:)

最佳答案

据我了解,您需要访问属性和值作为示例来解析 xml。

Do i need a statement for each of the attribute or can i return a list and just loop over the values?

不,你不知道。下面以解析xml为例代码:

//str contains your xml
XDocument xml = XDocument.Parse(str);
XNamespace ns = "http://schemas.microsoft.com/win/2004/08/events/event";

foreach (var node in xml.Descendants(ns + "Data"))
{
Console.WriteLine ("Name: " + (string)node.Attribute("Name") + "; "+
"Value: " + node.Value);
}

将打印:

Name: SubjectUserSid; Value: S-1-0-0
Name: SubjectUserName; Value: MACHINE$
Name: SubjectDomainName; Value: DOMAIN
Name: SubjectLogonId; Value: 0x0
Name: TargetUserSid; Value: S-1-0-0
Name: TargetUserName; Value: username
Name: TargetDomainName; Value: TDname
Name: Status; Value: 0x0
Name: FailureReason; Value: %%2313
Name: SubStatus; Value: 0x0
Name: LogonType; Value: 10

关于c# - 如何使用 LINQ 和 C# 最好地提取属性值和元素值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15878593/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com