C#xml文档按属性查找值
我做了研究,发现大约有10条不同的线索提出了类似的问题。我还发现了不同的方法:linq、xpath等 我都试过了,但都没有结果。它总是“null” 这是我的xml;我希望操作相关作为字符串:C#xml文档按属性查找值,c#,xml,linq,xpath,C#,Xml,Linq,Xpath,我做了研究,发现大约有10条不同的线索提出了类似的问题。我还发现了不同的方法:linq、xpath等 我都试过了,但都没有结果。它总是“null” 这是我的xml;我希望操作相关作为字符串: <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> <System> <Provider Name="Microsoft-Windows" Guid="{123}" /> &
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Microsoft-Windows" Guid="{123}" />
<EventID>12</EventID>
<Version>0</Version>
<Level>0</Level>
<Task>1</Task>
<Opcode>0</Opcode>
<Keywords>0x1110000000000000</Keywords>
<TimeCreated SystemTime="2017-07-26T11:08:06.899918600Z" />
<EventRecordID>3333</EventRecordID>
<Correlation />
<Execution ProcessID="2" ThreadID="3" />
<Channel>Security</Channel>
<Computer>test</Computer>
<Security />
</System>
<EventData>
<Data Name="OpCorrelationID">{abc}</Data>
<Data Name="AppCorrelationID">-</Data>
<Data Name="SubjectUserSid">123-S-123</Data>
<Data Name="SubjectUserName">TestUser</Data>
<Data Name="SubjectDomainName">TEST</Data>
<Data Name="SubjectLogonId">0x3a111</Data>
<Data Name="DSName">test.local</Data>
<Data Name="DSType">%%14111</Data>
<Data Name="ObjectDN">cn=bbbbb bb. bbb,OU=test,OU=Test123,DC=test,DC=local</Data>
<Data Name="ObjectGUID">{DF0F5628-70DA-4AC4-B72E-111111111}</Data>
<Data Name="ObjectClass">user</Data>
<Data Name="AttributeLDAPDisplayName">pwdLastSet</Data>
<Data Name="AttributeSyntaxOID">2.5.5.16</Data>
<Data Name="AttributeValue">131455408816821756</Data>
<Data Name="OperationType">%%14675</Data>
</EventData>
及
从子体中删除了“数据”,它可以正常工作。您可以尝试使用动态方法吗?只需向属性(“名称”)添加值-属性(“名称”)。值==“smth”
string OpCorrelationID = (string)XDocument.Parse(record.ToXml()).Descendants("Data").FirstOrDefault(d => (string)d.Attribute("Name") == "OpCorrelationID");
string OpCorrelationID = XDocument.Parse(record.ToXml()).XPathSelectElement("descendant::Data[@Name='OpCorrelationID']").Value;