如何使用C#或VB从XML获取价值?

时间:2014-01-20 06:29:10

标签: c# saml-2.0

下面的xml格式数据是断言XML的SAML响应的一部分,我不知道如何从条件节点和AttributeStatement节点的AttributeValue中选择NorBefore和NotOnOrAfter,所以请帮助我从这些xml中获取这些值。我正在使用visual studio 2005,我需要一个C#或vb代码。

<ns2:Conditions NotBefore="2014-01-16T22:10:09Z" NotOnOrAfter="2014-01-16T22:12:09Z">
<ns2:AudienceRestriction>
<ns2:Audience>namecomponent:test.comp.com</ns2:Audience>
</ns2:AudienceRestriction>
</ns2:Conditions>
<ns2:AuthnStatement AuthnInstant="2014-01-16T22:10:39Z" SessionIndex="8cILoZqzVAFS2t8zF65fmT2rIFE=F5zAiA==" SessionNotOnOrAfter="2014-01-16T22:12:09Z">
<ns2:AuthnContext>
<ns2:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:Password</ns2:AuthnContextClassRef>
</ns2:AuthnContext>
</ns2:AuthnStatement>
<ns2:AttributeStatement>
<ns2:Attribute Name="NameID" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<ns2:AttributeValue>EMP10344</ns2:AttributeValue>
</ns2:Attribute>
</ns2:AttributeStatement>

由于

1 个答案:

答案 0 :(得分:0)

在VB.NET中,它非常简单。首先,您必须在模块的声明部分中定义命名空间:

Imports <xmlns:ns2="http://SomeNamespace">

将SomeNamespace替换为XML文件头中声明为ns2的名称空间。

然后将XML加载到XDocument并使用VB的LINQ-to-XML语法读取值:

Dim notBefore = xdoc.Root.<ns2:Conditions>.@NotBefore