代码之家  ›  专栏  ›  技术社区  ›  Robin Day

SQL 2005 XML系统中的特殊/转义字符。Xml。XmlDocument。OuterXml

  •  0
  • Robin Day  · 技术社区  · 17 年前

    然后,我使用XmlDocument将xml数据插入SQL2005中的xml列中。OuterXml方法获取原始xml。

    我遇到的问题是xml包含一些特殊字符。即:  这是因为xml是基于来自不同来源的用户输入构建的。

    CREATE TABLE #MyTable (MyColumn XML)
    INSERT INTO #MyTable VALUES ('<Element>&#x1F;&#x1C;</Element>')
    

    XML解析:第1行,字符15,非法XML字符

    2 回复  |  直到 17 年前
        1
  •  1
  •   Jon Skeet    17 年前

    如果中的XmlDocument包含无效字符,则基本上没有有效的XML。除了XML中的制表符、回车符和换行符外,U+0020以下没有其他表示方式。我不完全确定为什么,但根据规范,这是无效的XML。

    你可以把原料储存起来 文本 数据库中的无效XML,但我认为您首先希望它是一个XML列是有原因的:)

    您真的想保留这个无效的XML吗?你知道它从哪里来,是否需要吗?我个人会尽可能地清理数据。

    (顺便说一句,第一个Stack Overflow数据转储也有一个非常相似的问题,所以不仅仅是你:)

        2
  •  0
  •   guille    16 年前

    这可以插入到#MyTable值中(“&#x1F;”)

    为了清楚起见,我现在添加了空格

    在#我的表值中插入(“<E l E m E n t>a m p;#x 1 F;</E l E m n t>”)