相关疑难解决方法(0)

如何在.NET中读取XML?

XML noob在这里!所以我有一些xml数据:

<DataChunk>
    <ResponseChunk>
        <errors>
            <error code=\"0\">
                Something happened here: Line 1, position 1.
            </error>
        </errors>
    </ResponseChunk>
</DataChunk>
Run Code Online (Sandbox Code Playgroud)

如何获取"错误"列表,我可以访问"错误代码"和以下文本说明?另外,我在c#中使用.net4.0 ...谢谢!

c# xml

30
推荐指数
2
解决办法
8万
查看次数

如何/我可以使用linq到xml查询具有合理内存消耗的巨大xml文件?

我没有用linq来做xml,但我见过的所有例子都将整个XML文档加载到内存中.

如果XML文件是8GB,你真的没有选择怎么办?

我的第一个想法是将XElement.Load方法(TextReader)FileStream类的实例结合使用.

问题:这是否有效,这是解决搜索非常大的XML文件问题的正确方法吗?

注意:不需要高性能..我正在尝试获取linq到xml基本上完成程序的工作我可以编写循环遍历我的大文件的每一行并收集,但因为linq是"循环中心" "我希望这是可能的......

c# xml linq

16
推荐指数
2
解决办法
7235
查看次数

如何将(大)XML写入C#中的文件?

伙计们,

请问,在C#.NET 3.5中编写真正大的XML文档(最多500 MB)有什么好方法?我有一些搜索,似乎找不到任何解决这个具体问题的东西.

我之前的主题(在C#代码中解析(大)XML的最佳方法是什么?)包括读取类似大小的Xml文档...解决了这个问题后,我需要考虑如何编写更新的功能(http:// www. opengeospatial.org/standards/sfa)到"update.xml"文件.

我的想法:考虑到要生成的文档的最大大小,显然有一个大的DOM已经出局了.我正在使用XSD.EXE从模式中生成绑定类...它与XmlSerializer类很好地配合,但我认为它在"引擎盖下"构建了一个DOM.它是否正确?.我不能同时在内存中保存所有功能(最多50,000个).我需要从数据库中读取一个功能,序列化它,并将其写入文件.所以我想我应该使用XmlSerializer为文件的每个单独的功能编写"doclet".如果这是可能/可行的话,我还不知道.

你怎么看?

背景:我正在将旧的VB6 MapInfo"客户端插件"移植到C#.有一个现有的J2EE"更新服务"(实际上只是一个web-app),该程序(以及其他)必须使用它.我无法改变服务器; 除非有必要; 特别是涉及改变其他客户.服务器接受一个XML文档,其架构不具体说明任何名称空间......即:只有默认名称空间,一切都在其中.

我的经验:我几乎是一个C#和.NET新手.我用各种语言编写了大约10年的编程,包括Java,VB,C和一些C++.

干杯全都.基思.

PS:这是晚餐时间,所以我将大约半小时擅离职守.

c# xml

13
推荐指数
2
解决办法
7734
查看次数

SAX vs XmlTextReader - C#中的SAX

我正在尝试阅读一个大型的XML文档,我想以块XmlDocument的形式将整个文件读入内存.我知道我可以XmlTextReader这样做,但我想知道是否有人使用SAX for .NET?我知道Java开发人员发誓它,我想知道是否值得尝试一下,如果有的话,使用它有什么好处.我正在寻找细节.

c# java xml sax

12
推荐指数
4
解决办法
1万
查看次数

XDocument.Load(XmlReader)表现糟糕; 来自Web服务的2 MB XML需要从Stream到解析4秒

我正在调用一个webservice,它返回一个大约2MB的xml.

一切都很标准.问题是创建XDocument.

XDocument xdoc = XDocument.Load( XMLReader Object); // takes 4 sec!!!
Run Code Online (Sandbox Code Playgroud)

我正在创建xdoc,因为我使用LINQ to XML来读取XML.

Stopwatch s = new Stopwatch();

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(MyUri);
System.Net.ServicePointManager.Expect100Continue = false;
req.Method = "POST";

req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = Poststring.Length;

StreamWriter swriter = new StreamWriter(req.GetRequestStream());
swriter.Write(Poststring);
swriter.Close();

s.Start();
HttpWebResponse response = (HttpWebResponse)req.GetResponse();
XmlReader MyXmlReader = null;

XmlReaderSettings settings = new XmlReaderSettings();
settings.ProhibitDtd = false;
settings.ValidationType = ValidationType.None;
settings.ConformanceLevel = ConformanceLevel.Document;

Stream stream = response.GetResponseStream();
s.Stop(); 
Debug.WriteLine("stream= response.GetResponseStream(): " + s.ElapsedMilliseconds);
s.Reset();

MyXmlReader = XmlReader.Create(stream, …
Run Code Online (Sandbox Code Playgroud)

c# xml performance web-services stream

3
推荐指数
1
解决办法
3704
查看次数

String Builder和字符串大小

为什么StringBuilder大小大于字符串(~250MB).

请阅读问题.我想知道字符串中大小约束的原因,但不知道在stringbuilder中.我已经修复了读取文件的问题.

是的,我知道有操作,我们可以在字符串构建器上执行如append,replace,remove等.但是当我们无法从它获取ToString()并且我们无法直接写入时,它的用途是什么文件.我们必须让ToString()实际使用它,但由于它的大小超出了字符串范围,因此抛出异常.

因此,特别是使用字符串构建器,其大小比字符串大,因为我将大约1 GB的文件读入字符串构建器但不能将其转换为字符串.我阅读了StringBuilder上StringBuilder的所有优点和缺点,但我无法解释这一点

更新: 我想从文件中加载XMLDocument,如果读入块,则无法加载数据,因为根级节点需要其关闭标记,该标记将位于其他块块中

更新: 我知道这不是一个正确的方法现在我是不同的过程,但我仍然想知道字符串大小约束的原因,但不是在stringbuilder

更新: 我已修复我的问题,并想知道stringbuilder上没有内存约束的原因.

c# memory string stringbuilder

1
推荐指数
2
解决办法
2009
查看次数

阅读xml的最佳方式

什么是阅读XML的最佳方式?

我的xml就像我会有很多

<A> and <B>, not sure how many will be there and I have to read the whole xml file.
Run Code Online (Sandbox Code Playgroud)

我不能说子元素喜欢

<180> will be there under <A> for sure. So does the other element.
Run Code Online (Sandbox Code Playgroud)

但如果它在那里我必须阅读它.

我应该使用LINQ或XPath还是XMLReader?哪一个更好更容易?

        <A>
            <180>20130218</180>  ///180 is here
            <170>5</170>
            <220>20080210</220>
            <730 CLID='AAA' KW='BBB' KW2='INTERNATIONAL'>
                <731>BBB INTERNATIONAL AG</731>
                <732>XXX</732>
                <735>US66</735>
                <734>YYY</734>
            </730>
            <300>
                <301>
                    <320>20071100</320>
                    <310>12345</310>
                </301>
                <330>US</330>
            </300>
        </A>
        <A>                    ///180 is not here
            <170>5</170>
            <220>20080210</220>
            <730 CLID='AAA' KW='BBB' KW2='WORLD'>
                <731>BBB INTERNATIONAL AG</731>
                <734>YYY</734>
            </730> …
Run Code Online (Sandbox Code Playgroud)

c# xml linq xpath xmlreader

-1
推荐指数
1
解决办法
340
查看次数

标签 统计

c# ×7

xml ×6

linq ×2

java ×1

memory ×1

performance ×1

sax ×1

stream ×1

string ×1

stringbuilder ×1

web-services ×1

xmlreader ×1

xpath ×1