Tag: xmldocument

使用SelectSingleNode()方法需要哪个命名空间(使用默认命名空间而不能使用该方法)

嗨,我有使用不同命名空间的xml文件(实际上是msbuild文件) Value 但问题是因为我不能将SelectSingleNode与该文件一起使用 xmlns=”http://schemas.microsoft.com/developer/msbuild/2003″ 我相信它是因为默认命名空间(方法必需)因为上面的xmlns而消失了。 然后我想我只需要为此添加必要的……但我的尝试根本没有成功。 能否请您快速举例说明如何做到这一点? 我是这样做的。 (我也尝试添加多个名称空间,但没有成功..) XmlDocument xml = new XmlDocument(); xml.Load(“ref.props”); XmlNamespaceManager nsmgr = new XmlNamespaceManager(xml.NameTable); nsmgr.AddNamespace(“msbld”, “http://schemas.microsoft.com/developer/msbuild/2003”); XmlNode platform_node = xml.SelectSingleNode(“//msbld:PropertyGroup[contains(@Condition, ‘1111’)]”, nsmgr);

在前缀元素下没有xmlns的XmlDocument CreateElement

我正在尝试使用以下代码中的C#XmlDocument类来编写一个SOAP请求到ebay FindingAPI Web服务: XmlDocument doc = new XmlDocument(); XmlElement root = (XmlElement)doc.AppendChild(doc.CreateElement(“soap”, “Envelope”, “http://www.w3.org/2003/05/soap-envelope”)); root.SetAttribute(“xmlns”, “http://www.ebay.com/marketplace/search/v1/services”); XmlElement header = (XmlElement)root.AppendChild(doc.CreateElement(“soap”, “Header”, “http://www.w3.org/2003/05/soap-envelope”)); XmlElement body = (XmlElement)root.AppendChild(doc.CreateElement(“soap”, “Body”, “http://www.w3.org/2003/05/soap-envelope”)); XmlElement request = (XmlElement)body.AppendChild(doc.CreateElement(“findItemsByKeywordsRequest”)); XmlElement param = (XmlElement)request.AppendChild(doc.CreateElement(“keywords”)); param.InnerText = “harry potter phoenix”; 并且,上面代码的XML输出是: harry potter phoenix 但是,由于findItemsByKeywordsRequest元素中有额外的xmlns =“”属性,服务器无法识别此XML。 所需的XML输出应如下所示: harry potter phoenix 有谁知道我的代码有什么问题,请给我一些提示。 谢谢!

C#将数据添加到xml文件

我正在构建一个Parts应用程序,以便学习C#和WPF。 我尝试使用XmlWriter添加新部件时遇到问题。 我可以创建xml文件,但无法确定如何添加其他部分。 我应该使用像XmlDocument这样的东西吗? 这是我的代码背后: private void btnSave_Click(object sender, RoutedEventArgs e) { XmlWriterSettings settings = new XmlWriterSettings(); settings.Encoding = Encoding.UTF8; settings.Indent = true; using (XmlWriter writer = XmlWriter.Create(“f:\\MyParts.xml”, settings)) { writer.WriteStartDocument(); writer.WriteStartElement(“MyParts”); writer.WriteStartElement(“parts”); writer.WriteStartElement(“item”); writer.WriteString(txtbxitem.Text); writer.WriteEndElement(); writer.WriteStartElement(“color”); writer.WriteString(txtbxcolor.Text); writer.WriteEndElement(); writer.WriteStartElement(“size”); writer.WriteString(txtbxsize.Text); writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteEndDocument(); writer.Flush(); writer.Close(); } } 此代码正确创建xml文件和节点,但如何添加其他部分? 这是我想要创建的: Part1 Red SM Part2 Blue […]

C#:修改xml节点

我有那个xml文件: Alarm1 Desc1 03/07/2012 10:11AM 1 None 我想将Alarm1中的innertext修改为另一个值,因此我编写了实际复制整个节点的代码。 XmlDocument xml = new XmlDocument(); xml.Load(“0.xml”); XmlNodeList elements = xml.SelectNodes(“//reminders”); foreach (XmlNode element in elements) { if (element.InnerText == “Alarm1”) { XmlNode newvalue = xml.CreateElement(“MODIFIED”); element.ReplaceChild(newvalue, element); xml.Save(“0.xml”); } } 然后尝试了另一个代码: foreach (XmlElement element in xml.SelectNodes(“//reminder”)) { if (element.InnerText == “Alarm1”) { XmlNode newvalue = xml.CreateElement(“MODIFIED”); element.ReplaceChild(newvalue, […]

如何使用XmlDocument向根元素添加多个名称空间?

我需要创建一个XmlDocument ,其根元素包含多个名称空间。 我使用的是C#2.0或3.0 这是我的代码: XmlDocument doc = new XmlDocument(); XmlElement root = doc.CreateElement(“JOBS”, “http://www.example.com”); doc.AppendChild(root); XmlElement job = doc.CreateElement(“JOB”, “http://www.example.com”); root.AppendChild(job); XmlElement docInputs = doc.CreateElement(“JOB”, “DOCINPUTS”, “http://www.example.com”); job.AppendChild(docInputs); XmlElement docInput = doc.CreateElement(“JOB”, “DOCINPUT”, “http://www.example.com”); docInputs.AppendChild(docInput); XmlElement docOutput = doc.CreateElement(“JOB”, “DOCOUTPUT”, “http://www.example.com”); docOutputs.AppendChild(docOutput); 目前的输出: 但是,我想要的输出是: 我的问题:如何创建包含具有多个名称空间的根元素的XmlDocument ?

在C#中解码CDATA部分

我有一点XML如下: 我正在使用curXmlNode.SelectSingleNode(“description”).InnerText访问它curXmlNode.SelectSingleNode(“description”).InnerText但值返回 \ r \ n这是我已格式化的“描述”\ r \ n 代替 这是我格式化的“描述”。 有没有一种简单的方法从CDATA部分获得那种输出? 保留实际的CDATA标签似乎让它以同样的方式返回。

“非静态字段,方法或属性需要对象引用”

我在我的代码中遇到了这个小问题。 我正在尝试制作可以写入xml文档的小型控制台应用程序。 我使用过xmldocument和xmlnode概念。 我得到的错误是; *非静态字段,方法或属性’Write_xml.Program.give_node(System.Xml.XmlDocument)’C:\ Documents and Settings \ Administrator \ Desktop \ Write_xml \ Write_xml \ Program.cs *需要对象引用 代码没问题,除了1错误。 我无法解决它,我希望有人检查并纠正它。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml; using System.Xml.Linq; namespace Write_xml { class Program { static void Main(string[] args) { XmlDocument doc = new XmlDocument(); XmlDocument lets = new XmlDocument(); string […]

没有使用XPath从Atom XML文档中选择节点?

我正在尝试以编程方式解析Atom提要。 我将primefacesXML下载为字符串。 我可以将XML加载到XmlDocument 。 但是,我无法使用XPath遍历文档。 每当我尝试时,我都会null 。 我一直在使用这个Atom提要作为测试: http : //steve-yegge.blogspot.com/feeds/posts/default 调用SelectSingleNode()始终返回null ,除非我使用“ / ”。 这就是我现在正在尝试的: using (WebClient wc = new WebClient()) { string xml = wc.DownloadString(“http://steve-yegge.blogspot.com/feeds/posts/default”); XmlNamespaceManager nsMngr = new XmlNamespaceManager(new NameTable()); nsMngr.AddNamespace(string.Empty, “http://www.w3.org/2005/Atom”); nsMngr.AddNamespace(“app”, “http://purl.org/atom/app#”); XmlDocument atom = new XmlDocument(); atom.LoadXml(xml); XmlNode node = atom.SelectSingleNode(“//entry/link/app:edited”, nsMngr); } 我以为它可能是因为我的XPath,所以我也尝试了一个简单的根节点查询,因为我知道root应该工作: // I’ve tried both with […]

wcf返回一个XmlDocument?

我有一个WCF服务,我使用XmlWriter构建一个XML块。 一旦完成,我想让WCF将其作为XmlDocument返回。 但如果我在[OperationContract]中有XmlDocument它不起作用: [OperationContract] XmlDocument GetNextLetter(); WCF测试实用程序提供: System.Runtime.Serialization.InvalidDataContractException:无法序列化类型’System.Xml.XmlDocument’。

自定义xmlWriter跳过某个元素?

我正在实现一个自定义xmlwriter,我想省略任何具有特定名称的元素,如 。 我该怎么做呢? 我觉得我可能需要像这样覆盖WriteStartElement方法: public override void WriteStartElement(string prefix, string localName, string ns) { if (localName.Equals(“ABC”)) { return; } base.WriteStartElement(prefix, localName, ns); } 我是否还需要覆盖WriteEndElement方法? 如何告诉WriteEndElement方法跳过编写结束标记? 在WriteEndElement方法中似乎没有可以检查的localName引用…?