Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#XMLReader未正确解析_C#_Xml_Visual Studio_Xmlreader - Fatal编程技术网

C#XMLReader未正确解析

C#XMLReader未正确解析,c#,xml,visual-studio,xmlreader,C#,Xml,Visual Studio,Xmlreader,我不想使用XMLDocument,因为我已经使用XMLWriter编写了XML编写代码。因此,应该没有理由切换 <Player> <Friends /> <Ignores> <Ignore>117779</Ignore> <Ignore>44237636758361374</Ignore> <Ignore>564534831</Ignore> </

我不想使用XMLDocument,因为我已经使用XMLWriter编写了XML编写代码。因此,应该没有理由切换

<Player>
  <Friends />
  <Ignores>
    <Ignore>117779</Ignore>
    <Ignore>44237636758361374</Ignore>
    <Ignore>564534831</Ignore>
  </Ignores>
  <InventoryItems>
    <Item>
      <Slot>0</Slot>
      <Id>995</Id>
      <Amount>39493</Amount>
    </Item>
    <Item>
      <Slot>27</Slot>
      <Id>1049</Id>
      <Amount>12</Amount>
    </Item>
  </InventoryItems>
  <BankItems />
</Player>
因此,应该没有理由切换

<Player>
  <Friends />
  <Ignores>
    <Ignore>117779</Ignore>
    <Ignore>44237636758361374</Ignore>
    <Ignore>564534831</Ignore>
  </Ignores>
  <InventoryItems>
    <Item>
      <Slot>0</Slot>
      <Id>995</Id>
      <Amount>39493</Amount>
    </Item>
    <Item>
      <Slot>27</Slot>
      <Id>1049</Id>
      <Amount>12</Amount>
    </Item>
  </InventoryItems>
  <BankItems />
</Player>
有一个很好的理由可以切换到DOM样式的表示形式,除非您的文档太大,无法合理地放入内存中:使用该表示形式要容易得多

XmlReader
使用起来确实很痛苦。现在还不清楚到底出了什么问题(你说它“似乎到处都破了”,但不清楚到底发生了什么),但我强烈建议你换一个更简单的模型。之后,您的代码将大大简化。如果您可以使用LINQtoXML而不是3.5API之前的版本,那将使您的生活更加美好


如果你绝对坚持使用
XmlReader
,我建议你用一段更简单的XML和代码来更新你的文章,以说明问题所在。我还建议您重构代码,以测试节点类型是否为元素一次,然后将“处理元素”部分重构为单独的方法。。。在这里,您可能需要打开元素名称并在单独的方法中处理每种类型的元素。较小的方法通常更易于理解、测试和调试。

XmlReader在需要最大性能或文档太大而无法装入RAM时非常有用。对于其他所有我推荐使用LINQtoXML的东西,我已经能够用更简洁的语法替换超过200行的XmlReader解析器