【问题标题】:XML format for special characters特殊字符的 XML 格式
【发布时间】:2012-11-22 00:01:52
【问题描述】:
  1. 哪些特殊字符会破坏 XML?

例如,如果值中没有特殊字符,则以下 xml 有效。但是当我有 & 签名时失败。我尝试使用 CDATA 语法 (<![CDATA[CITY & COUNTY]]>) 包装该值,但得到“解析 CDATA 时出现意外的文件结尾。第 44 行,位置 122”

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

附加信息(如果需要):我正在使用 SharePoint 2010,它是用于为文档库中的某些列设置默认值的 Web 服务。

【问题讨论】:

  • 你用什么来创建这个 XML?字符串操作?请改用其中一种 XML API。他们知道如何正确地做到这一点。
  • 我在工作流中使用构建字符串操作来动态创建 xml。不知道如何在共享点工作流中使用 XML API。

标签: c# xml


【解决方案1】:

实际上,由于我使用 Nintex 进行工作流程,因此有一个功能可以处理特殊字符。您所做的就是用函数包装值。

fn-XmlEncode

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

例子

fn-XmlEncode({WorkflowVariable:Text})

【讨论】:

  • 这是一种方法,但我仍然建议您找到一种使用 XML API(如 LINQ to XML 或 XmlDocument)构建 XML 的方法。这些 API 的整体理念是它们理解 XML 的所有规则。
【解决方案2】:

数量不多。您必须在 xml 中转义 5 个字符。

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

只需将您的 &amp;amp; 更改为 &amp;amp;,它应该可以工作。

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

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

【讨论】:

    猜你喜欢
    • 2013-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多