2012-11-21 128 views
0
  1. 什么是会破坏XML的特殊字符?

例如,如果值中没有特殊字符,则以下xml工作。但当我有&符号时失败。我试着与CDATA语法(<![CDATA[CITY & COUNTY]]>),但得到包裹价值用于特殊字符的XML格式

<Method ID="5">   
    <Field Type="Text" Name="Company" DisplayName="Company Name" FromBaseType="TRUE" > 
     <Default>Rob & Schnider Company</Default> 
    </Field> 
</Method> 

附加信息(如果需要)“意外的文件结尾解析CDATA已经发生,而44号线,122位”:我使用的SharePoint 2010它是Web服务为文档库中的某些列设置默认值。

+0

什么是你使用的是创建这个XML?字符串操作?改用其中一个XML API。他们知道如何正确地做到这一点。 –

+0

我在工作流中使用Build String操作来动态创建xml。不知道如何在SharePoint工作流程中使用XML API。 – Axiom

回答

1

实际上,因为我使用Nintex工作流有函数,它接受特殊字符的照顾。你所做的就是用该函数包装值。

fn-XmlEncode 

对字符串进行编码,使其在html中查看安全。

fn-XmlEncode({WorkflowVariable:Text}) 
+0

这是实现它的一种方式,但我仍然建议您找到一种使用XML API(如LINQ to XML或XmlDocument)构建XML的方法。这些API的全部概念是,他们理解XML的所有规则。 –

0

有没有很多。有5个字符,你必须在你的xml中转义。

& &amp; Ampersand sign 
' &apos; Single quote 
" &quot; Double quote 
> &gt; Greater than 
< &lt; Less than 

只是改变你的&&amp;,它应该工作。

如果你用c#XML库解析它,它应该知道如何处理转义序列。

http://www.rtslink.com/introductionxmlsoap.html