【问题标题】:Copy XML element to String [duplicate]将 XML 元素复制到字符串 [重复]
【发布时间】:2012-09-21 15:47:26
【问题描述】:

可能重复:
XML file copy to a string

 <DETAIL Description='>> Problem:<br><br>CRS750 dumps when panel F is opened<br><br><br>  <br>>> Functional Solution:<br><br>Check cause of the dump and fix it<br><br><br><br>>> Technical Solution:<br><br>Modified CRS750 and added fields WWVTRM and WWCRTP in CRA750F0 record format.<br><br><br><br>>> Related corrections<br><br>None <br><br><br><br>>> Affected Objects<br><br>CRS750 VIEWDEF MAT only' />

我想复制上面的字符串并用字符串中的值更新数据库中的表。

但是,由于它包含&lt;br&gt;&lt;&lt;,因此会引发以下异常;

'<', hexadecimal value 0x3C, is an invalid attribute character. Line 1, position 902.

这样的标签效果很好&lt;DETAIL Objects='MAT: Viewdefinition:CRS750' /&gt;请建议

【问题讨论】:

  • 研究CDATA
  • 问题是 '>' 和 '
  • @Pawel,虽然它有些正确,但我怀疑这是一个很好的建议 - 下一个问题是“如何使用 RegEx 在类似 XML 的字符串中选择错误的 &lt;”...
  • @Alexei:内容不是 Xml 文档/片段(格式不正确),所以我真的不认为在这里使用正则表达式有问题。这里的问题是生成上述 Xml 文档的源。我也可以相信,最初属性的内容实际上是编码的,但打印得很漂亮(例如,通过 Internet Explorer 显示 < 为黑色 '
  • @Pawel,我强烈怀疑这样的字符串是由用户故意输入的(在这种情况下修复它有点好,我也选择重新输入:))...更多它可能是由一些代码生成的——修复生成“XML”的代码是更有效的解决方案(当然,这种方法的乐趣要少得多——创建 XLMAgilityPack 与 HTMLAgilityPack 配对很有趣,但我认为适得其反)。

标签: c# .net xml vb.net


【解决方案1】:

您的字符串不是有效的 XML,无法将其放置在需要 XML 的位置。

String.Concat 不是构造 XML 的方法。请使用 XML API(XmlDocument、XDocument 或 XmlWriter)来创建 XML。

如果您仍想使用 string.Concat 手动构造 XML,请在提问之前证明您已阅读 XML specification

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-04
    • 2017-03-17
    • 1970-01-01
    • 2018-04-25
    • 1970-01-01
    • 2021-08-17
    • 2020-11-21
    相关资源
    最近更新 更多