如何解析其中包含非xml数据的xml

时间:2016-04-25 18:16:14

标签: c# .net xml serialization

我正在使用C#中的一些xml,并且因为它所处的格式而在解析xml文件时遇到了一些问题。它在文件中有非xml数据,我无法控制该文件的格式。该文件是“test.xml”(见下文)。我只关心数据的xml部分,但我不确定访问它的最佳方式。任何想法或建议将不胜感激。

Test data -1
Smith, 2234

@@*j

Random--

@<?xml version="1.0" encoding="utf-16"?>
<ConfigMessage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.Test.com/schemas/Test.test.Config">
  <Config>
    <Version>10</Version>
    <Build>00520</Build>
    <EnableV>false</EnableV>
    <BuildL>22</BuildL>
    <BuildP>\\testpath\test</BuildP>
  </Config>
</ConfigMessage>
@

2 个答案:

答案 0 :(得分:1)

我可以建议你这样的解决方案:打开你的伪xml像简单的文本文件,读取整个文本,之后,使用正则表达式,你应该采取xml文档(原始文档的一部分,能够转换为XML [| startTag | 任何符号 | / endTag |]),将其放入XDocument(在内存中),现在将其解析为XML文件。

答案 1 :(得分:0)

将整个文件放入一个字符串中,该字符串包含第一个&#39;&lt;&#39;最后的&#39;&gt;&#39;在文件上检测到的字符。然后,您可以将其视为普通XML。如果整个过程中存在随机的非XML元素,你需要添加额外的逻辑来检测启动/停止XML&#34; block&#34;。