2014-02-05 55 views
1

我有一个具有多个根节点的XML文件。我希望每个根节点都存储在数据库中的单独记录中。同样,当存储在数据库中时,我想用模式验证它,如果它有效,从标签中取一些值并存储它。请帮助我。多根节点

示例XML文件格式:

<Papermail><tags>  </tags></papermail> 
<Papermail><tags>  </tags></papermail> 
<Papermail><tags>  </tags></papermail> 
<Papermail><tags>  </tags></papermail> 
<Papermail><tags>  </tags></papermail> 
<Papermail><tags>  </tags></papermail> 
+1

因此,您只需要有人去做...一切?请发布您迄今为止尝试的内容。 –

+1

我对xml太不熟悉了,它可以有多个根节点?我不这么认为。 –

+3

格式良好的XML没有多个根节点。 –

回答

1

你有没有考虑包裹从文件中的文本,当你有一个“根”元素加载它。

<root> 
    <Papermail> 
     <tag... 
    </Papermail> 
</root> 

这种方式,您可以存储无效的XML文件系统上,但是当你加载它,并把它包起来,就成了有效的XML,你可以验证和使用。

+1

_你认为_并不是他的具体问题的答案。这应该是一个commant –

+2

嗯......我从这句话的转向只是一种礼貌的教学方式...另外...因为这是他遇到的问题的解决方案,我不觉得它应该是一条评论。 –

4

构建XmlReader,其ConformanceLevel设置为Fragment。有了这个,你现在可以正常地遍历每个顶层元素。这个设置告诉XML阅读器,不一定是单个根节点。从那里,你可以做任何你想要的XML。或者甚至可以使用ReadSubtree方法将顶级元素读入XmlDocument,使用XPath,对XML进行反序列化等。