我想从命名空间读取一个值,但它不工作。我正在使用下面的代码将后代传入列表中。XML子元素解析
XDocument doc = XDocument.Parse(QueryParmeterString);
XNamespace ns = XNamespace.Get("http://Microsoft.EnterpriseManagement.Core.Criteria/");
var expressions = (from ds in doc.Descendants(ns + "Expression")
select ds).ToList();
foreach (var foo in expressions)
{
string baa = foo.Attributes["ValueExpressionLeft"].Value;
}
}
在这一点上,我无法访问每个对象。我需要访问每个属性的值左右值。我有一个强类型的对象,可以存储这些值。
<Expression xmlns="http://Microsoft.EnterpriseManagement.Core.Criteria/">
<And>
<Expression>
<SimpleExpression>
<ValueExpressionLeft>
<Property>$Context/Property[Type='CoreIncident!System.WorkItem.Incident']/TierQueue$</Property>
</ValueExpressionLeft>
<Operator>Equal</Operator>
<ValueExpressionRight>
<Value>$MPElement[Name="IncidentTierQueuesEnum.Tier2"]$</Value>
</ValueExpressionRight>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpressionLeft>
<Property>$Context/Property[Type='CoreIncident!System.WorkItem.Incident']/Status$</Property>
</ValueExpressionLeft>
<Operator>NotEqual</Operator>
<ValueExpressionRight>
<Value>$MPElement[Name="CoreIncident!IncidentStatusEnum.Resolved"]$</Value>
</ValueExpressionRight>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpressionLeft>
<Property>$Context/Property[Type='CoreIncident!System.WorkItem.Incident']/Status$</Property>
</ValueExpressionLeft>
<Operator>NotEqual</Operator>
<ValueExpressionRight>
<Value>$MPElement[Name="CoreIncident!IncidentStatusEnum.Closed"]$</Value>
</ValueExpressionRight>
</SimpleExpression>
</Expression>
<Expression>
<UnaryExpression>
<ValueExpression>
<GenericProperty Path="$Context/Path[Relationship='WorkItem!System.WorkItemAssignedToUser' SeedRole='Source']$">Id</GenericProperty>
</ValueExpression>
<Operator>IsNull</Operator>
</UnaryExpression>
</Expression>
</And>
</Expression>
你需要什么是什么呢?是得到每个表达式的左右表达式的值吗? –
@Lamourou嗨,是的,我正在使用linq来获取返回该XML的主要表达式entrys。 – rogue39nin
@Lamourou @Lamourou任何想法我也需要能够获得表达式类型一些如何看待他们的方式标签简单的表达和uniury表达式? – rogue39nin