Tag: xmldocument

从XmlDocument中删除节点

下面的代码应该find合适的项目标签并将其从XmlDocument中删除,但是当我testing它时,它说: 要删除的节点不是此节点的子节点。 有谁知道这样做的正确方法? public void DeleteProject (string projectName) { string ccConfigPath = ConfigurationManager.AppSettings["ConfigPath"]; XmlDocument configDoc = new XmlDocument(); configDoc.Load(ccConfigPath); XmlNodeList projectNodes = configDoc.GetElementsByTagName("project"); for (int i = 0; i < projectNodes.Count; i++) { if (projectNodes[i].Attributes["name"] != null) { if (projectName == projectNodes[i].Attributes["name"].InnerText) { configDoc.RemoveChild(projectNodes[i]); configDoc.Save(ccConfigPath); } } } } UPDATE 固定。 我做了两件事: XmlNode project = […]

如何从jQuery返回的XMLDocument(跨浏览器)获取整个XMLstring?

我已经尝试过,并且无法find如何从GET返回的XMLDocument中获取整个XMLstring。 关于如何查找或replace对象中的特定元素,有很多问题,但似乎无法find任何答案如何将整个文档作为string。 我正在使用的例子是从这里 。 “用xml做什么”是我目前所在的地方。 我觉得这应该是非常微不足道的,但是我不知道如何。 是否有可用于此目的的“xml.data()”或类似的东西? $.ajax({ url: 'document.xml', type: 'GET', dataType: 'xml', timeout: 1000, error: function(){ alert('Error loading XML document'); }, success: function(xml){ // do something with xml } }); 用例是我想要将xml提供给flash插件,为此我需要将实际的XML作为string。

如何在.NET中使用XmlWriter创build一个XmlDocument?

许多.NET函数使用XmlWriter输出/生成XML。 输出到一个文件/string/内存是一个非常操作: XmlWriter xw = XmlWriter.Create(PutYourStreamFileWriterEtcHere); xw.WriteStartElement("root"); … 有时,您需要操作生成的Xml,因此希望将其加载到XmlDocument中,或者由于其他原因可能需要XmlDocument,但是必须使用XmlWriter生成XML。 例如,如果您在仅输出到XmlWriter的第三方库中调用函数。 你可以做的事情之一是写入XML到一个string,然后将其加载到您的XmlDocument: StringWriter S = new StringWriter(); XmlWriter xw = XmlWriter.Create(S); /* write away */ XmlDocument xdoc = new XmlDocument(); xdoc.LoadXml(S.ToString()); 但是这样做效率不高 – 首先将所有的xml信息序列化为一个string,然后再次parsingstring来创buildDOM。 你怎么能指望一个XmlWriter直接build立一个XmlDocument?

决定何时使用XmlDocument与XmlReader

我正在优化自定义对象 – > XML序列化实用程序,这一切都已经完成并且工作,这不是问题。 它通过加载一个文件到一个XmlDocument对象,然后recursion遍历所有的子节点。 我想,也许使用XmlReader而不是有XmlDocument加载/parsing整个事情会更快,所以我也实现了该版本。 algorithm是完全一样的,我使用包装类来抽象处理XmlNode与XmlReader 。 例如, GetChildren方法的yield返回一个子XmlNode或一个SubTree XmlReader 。 所以我写了一个testing驱动来testing这两个版本,并且使用了一个非平凡的数据集(一个大约有1,350个元素的900kb XML文件)。 但是,使用JetBrains的dotTRACE,我看到XmlReader版本实际上比XmlDocument版本更慢! 当我遍历子节点时,似乎有一些重要的处理涉及XmlReader读取调用。 所以我就这么说: XmlDocument和XmlReader的优点/缺点是什么,在什么情况下你应该使用? 我的猜测是有一个文件大小的阈值, XmlReader在性能上变得更经济,以及更less的内存密集。 不过,这个门槛似乎高于1MB。 我每次调用ReadSubTree来处理子节点: public override IEnumerable<IXmlSourceProvider> GetChildren () { XmlReader xr = myXmlSource.ReadSubtree (); // skip past the current element xr.Read (); while (xr.Read ()) { if (xr.NodeType != XmlNodeType.Element) continue; yield return new XmlReaderXmlSourceProvider (xr); […]

使用XmlDocument读取XML属性

我如何使用C#的XmlDocument读取XML属性? 我有一个XML文件,看起来有点像这样: <?xml version="1.0" encoding="utf-8" ?> <MyConfiguration xmlns="http://tempuri.org/myOwnSchema.xsd" SuperNumber="1" SuperString="whipcream"> <Other stuff /> </MyConfiguration> 我将如何读取XML属性SuperNumber和SuperString? 目前我正在使用XmlDocument,并使用XmlDocument的GetElementsByTagName()获取值,而且工作得很好。 我只是不知道如何获得属性?

将XML文件读入XmlDocument

我对C#很陌生。 我有XML文件(text.xml)。 我想在XmlDocument读取并将该stream存储在stringvariables中。

将XmlDocument转换为string

这是我目前如何将XMLDocument转换为string StringWriter stringWriter = new StringWriter(); XmlTextWriter xmlTextWriter = new XmlTextWriter(stringWriter); xmlDoc.WriteTo(xmlTextWriter); return stringWriter.ToString(); 这个方法的问题是,如果我有“ ((引号),我有属性)它逃脱它们。 例如: <Campaign name="ABC"> </Campaign> 以上是预期的XML。 但它返回 <Campaign name=\"ABC\"> </Campaign> 我可以做String.Replace“\”,但是这种方法好吗? 有没有什么副作用? 如果XML本身包含一个“\”,它会工作正常吗?

XML文档转换为string

获取XML文档的string表示( org.w3c.dom.Document )的最简单方法是什么? 这就是所有的节点将在一条线上。 作为一个例子,从 <root> <a>trge</a> <b>156</b> </root> (这只是一个树形表示,在我的代码中它是一个org.w3c.dom.Document对象,所以我不能把它当作一个String) 至 "<root> <a>trge</a> <b>156</b> </root>" 谢谢!

如何从XmlDocument中selectXML命名空间的XML节点?

我的代码尝试从网站的RSS提要中获取数据。 它抓取的节点很好,但是当试图用冒号从一个节点获取数据时,它会崩溃,并给出错误“名称空间pipe理器或XsltContext需要,这个查询有一个前缀,variables或用户定义的函数。 代码如下所示: WebRequest request = WebRequest.Create("http://buypoe.com/external.php?type=RSS2&lastpost=true"); WebResponse response = request.GetResponse(); StringBuilder sb = new StringBuilder(""); System.IO.StreamReader rssStream = new System.IO.StreamReader(response.GetResponseStream(), System.Text.Encoding.GetEncoding("utf-8")); XmlDocument rssDoc = new XmlDocument(); rssDoc.Load(rssStream); XmlNodeList rssItems = rssDoc.SelectNodes("rss/channel/item"); for (int i = 0; i < 5; i++) { XmlNode rssDetail; rssDetail = rssItems.Item(i).SelectSingleNode("dc:creator"); if (rssDetail != null) { user = rssDetail.InnerText; […]

从XML文档获取指定的节点值

我遇到了一个XML文档(使用C#)的问题,并获得所有必要的值。 我成功通过XML文档中的所有指定的XmlNodeLists,成功获取所有的XmlNode值,但是我必须得到这个XmlNodeList之外的一些值。 例如: <?xml version="1.0" encoding="UTF-8" ?> <Element xsi:schemaLocation="http://localhost/AML/CaseInvestigationMangement/Moduli/XmlImportControls/xsdBorrow.xsd xsd2009027_kor21.xsd" Kod="370" xmlns="http://localhost/AML/CaseInvestigationMangement/Moduli/XmlImportControls/xsdBorrow.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> /2001/XMLSchema-instance"> <ANode> <BNode> <CNode> <Example> <Name>John</Name> <NO>001</NO> </Example> </CNode> </BNode> <ID>1234</ID> <Date>2011-10-01</Date> </ANode> <ANode> <BNode> <CNode> <Example> <Name>Mike</Name> <NO>002</NO> </Example> </CNode> </BNode> <ID>5678</ID> <Date>2011-03-31</Date> </ANode> </Element> 这是在XML文档中的每个find的节点上获取节点Name和NO值的代码: XmlDocument xml = new XmlDocument(); xml.LoadXml(myXmlString); //myXmlString is the xml file in string //copying xml […]