如何从SQL Server文本字段转换为xml并返回

时间:2010-12-29 19:01:43

标签: .net sql sql-server xml linq-to-xml

我们将xml保存在具有数据类型文本的SQL Server数据库中,因此它是一个长字符串。

我现在需要做的是将此字符串转换为xml,然后使用它并最终将其转换回字符串以保存回数据库。

xml:

<Posts>
    <DialogPost>
      <Type></Type>
      <User></User>
      <Customer></Customer>
      <Date></Date>
      <Message></Message>
    </DialogPost>
</Posts>

我已经开始使用Linq来使用xml了,它看起来很棒,但是我遇到了问题让它起作用。

XDocument dialogXML = XDocument.Load("trying to load the xml string right in");

它不喜欢直接来自db的字符串。你会如何推荐我解决这个问题?读取和写回db。

1 个答案:

答案 0 :(得分:2)

使用XDocument.Parse方法。 Load期望URI不是XML。

您还应注意,您发布的XML无效。您在结尾处有一个结束Dialog标记但没有开始标记。这是一个可以使用有效XML的示例。

string str =
@"<?xml version=""1.0""?>
<!-- comment at the root level -->
<Posts>
    <DialogPost>
      <Type></Type>
      <User></User>
      <Customer></Customer>
      <Date></Date>
      <Message></Message>
    </DialogPost>
  </Posts>";
XDocument doc = XDocument.Parse(str);

Take a look here获取示例和更多信息。