【发布时间】:2017-07-10 12:44:03
【问题描述】:
我正在尝试使用 XDocument 类获取工作流标记,但它给了我下面提到的异常:
名称中不能包含“:”字符,十六进制值 0x3A。
我也尝试过使用命名空间,但没有取得积极的结果。
XML:
<?xml version="1.0" encoding="utf-16"?>
<Activity x:Class="XrmWorkflow75328ae32924499d972dd68053611740" xmlns="http://schemas.microsoft.com/netfx/2009/xaml/activities" xmlns:mxswa="clr-namespace:Microsoft.Xrm.Sdk.Workflow.Activities;assembly=Microsoft.Xrm.Sdk.Workflow, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" xmlns:s="clr-namespace:System;assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" xmlns:this="clr-namespace:" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<mxswa:Workflow>
<mxswa:ActivityReference AssemblyQualifiedName="Microsoft.Crm.Workflow.Activities.ConditionSequence, Microsoft.Crm.Workflow, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" DisplayName="ConditionStep1: name">
</mxswa:ActivityReference>
</mxswa:Workflow>
</Activity>
代码:
string strXml = File.ReadAllText(@"../../XMLFile1.xml");
XDocument xdoc = XDocument.Parse(strXml);
XNamespace xmlns = "clr-namespace:Microsoft.Xrm.Sdk.Workflow.Activities;assembly=Microsoft.Xrm.Sdk.Workflow, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35";
var results = from node in xdoc.Descendants( xmlns + "Workflow")
select node;
结果始终为空。
【问题讨论】:
-
您的示例 xml 中没有
Arguments节点 -
您的
mxswa:ActivityReference节点没有结束标记。 -
请再次检查问题已被编辑
标签: c# xml linq-to-xml