相关疑难解决方法(0)

Linq To XML,yield和其他人

我想知道是否有用于执行实体框架的.NET库或第三方工具,如XML文档上的LINQ查询.我知道已经有LINQ to XML,它允许你对一个ALREADY加载到内存中XDocument对象执行查询,但是如果XML Document的大小非常大(超过千兆字节)呢?

我想有一个选项将此查询XmlReader交给一个XDocument对象.这可能是开箱即用的吗?

.net c# linq linq-to-xml

11
推荐指数
1
解决办法
481
查看次数

如何在C#中解析非常庞大的XML文件?

我正在使用dblp XML文件.我实际上想要解析dblp.xml文件,并希望提取有用的信息以供我在某个项目中进一步处理.并且该XML文件非常庞大(1.1 GB),我甚至无法打开此文件.

如果您有dblp.xml的C#解析器,请指导我,或者您可以指导我,或者我们如何解析大型xml文件.

c# xml parsing

10
推荐指数
2
解决办法
3万
查看次数

如何读取大型xml文件而不将其加载到内存中并使用XElement

我想读一个大的xml文件(100 + M).由于它的大小,我不想使用XElement将其加载到内存中.我正在使用linq-xml查询来解析和读取它.

最好的方法是什么?关于XPath或XmlReader与linq-xml/XElement组合的任何示例?

请帮忙.谢谢.

xml xelement xpath linq-to-xml large-files

6
推荐指数
2
解决办法
6398
查看次数

XmlReader 状态应该是 Interactive

我正在尝试将 xml 加载到 XDocument 对象中。

public void ValidateRules(XmlReader xml)
{
    xml.MoveToContent();
    XDocument xDoc = new XDocument();
    xDoc = XDocument.Load(xml);
}
Run Code Online (Sandbox Code Playgroud)

但是,我不断收到错误“XmlReader 状态应该是交互式的”。我为此寻找了解决方法,并在顶部添加了 MoveToContent() 方法(正如前面提到的,这会将 ReadState 更改为 Interactive),但它不起作用。ReadState 是只读的,我无法更改该值。

这里可能有什么问题?

PS 我试图加载的 XML 文件有一个 DTD 参考。它存在于与 XML 相同的路径中。不知道这是否有任何意义。

c# linq-to-xml

5
推荐指数
1
解决办法
5884
查看次数

XmlReader 的行为与换行符不同

如果数据在一行上 index=int.Parse(logDataReader.ReadElementContentAsString()); ,则 value=double.Parse(logDataReader.ReadElementContentAsString(), 使光标向前移动。如果我取消这些调用,我会看到它在调试中循环了 6 次。

在下面<data>的第一个 ( <logData id="Bravo">) 中只读取了3 个(并且它们是错误的,因为该值用于下一个索引)。在第二个 ( <logData id="Bravo">) 上,所有内容<data>都已读取。

由于该文件是动态创建的(由 XMLwriter),因此无法编辑 xml 并插入换行符。该NewLineChars设置是换行。从 XMLwriter 开始,它实际上只是一行 - 我将它分解以找出它在哪里中断。在浏览器中它正确显示。

如何解决这个问题?

这是我的 XML:

<?xml version="1.0" encoding="utf-8"?>
<log>
   <logData id="Alpha">
      <data><index>100</index><value>150</value></data>
      <data><index>110</index><value>750</value></data>
      <data><index>120</index><value>750</value></data>
      <data><index>130</index><value>150</value></data>
      <data><index>140</index><value>0</value></data>
      <data><index>150</index><value>222</value></data>
   </logData>
   <logData id="Bravo">
      <data>
         <index>100</index>
         <value>25</value>
      </data>
      <data>
         <index>110</index>
         <value>11</value>
      </data>
      <data>
         <index>120</index>
         <value>1</value>
      </data>
      <data>
         <index>130</index>
         <value>25</value></data>
      <data>
         <index>140</index>
         <value>0</value>
      </data>
      <data>
         <index>150</index>
         <value>1</value>
      </data>
   </logData>
</log>
Run Code Online (Sandbox Code Playgroud)

还有我的代码:

static void Main(string[] …
Run Code Online (Sandbox Code Playgroud)

.net c# xml xmlwriter xmlreader

5
推荐指数
1
解决办法
771
查看次数

使用C#读取大型XML文件

我想知道如何从桌面读取XML文件并将其放入字符串中?

这是我的XML:

<smallusers>
    <user id="1">
        <name>John</name>
        <motto>I am john, who are you?</motto>
    </user>
    <user id="2">
        <name>Peter</name>
        <motto>Hello everyone!</motto>
    </user>
</smallusers>
<bigusers>
    <user id="3">
        <name>Barry</name>
        <motto>Earth is awesome</motto>
    </user>
</bigusers>
Run Code Online (Sandbox Code Playgroud)

我想存储每个用户,但仍然检测他们的小或大,有没有办法做到这一点?

在你降低这一点之前,你可能想检查谷歌,因为我做了研究,但没有发现任何东西.

c# xml serialization deserialization

0
推荐指数
1
解决办法
1696
查看次数