jjzjj

Xelement

全部标签

c# - 如何使用 XElement.ToString() 包含声明

我正在尝试为我的网络服务编写一个XML响应,但是我不知道如何使声明出现在响应中。我的代码是这样的:StringBuildersBuilder=newStringBuilder();using(XmlWriterwriter=XmlWriter.Create(sBuilder)){writer.WriteStartDocument();writer.WriteStartElement("ReportResponse");Response.WriteXml(writer);writer.WriteEndElement();writer.WriteEndDocument();}varresp

c# - 在 C# 中实现 DSL 以生成特定于域的 XML

我有一个遗留的HTTP/XML服务,我需要与它交互以实现我的应用程序中的各种功能。我必须为服务创建范围广泛的请求消息,因此为了避免在代码周围散布大量魔法字符串,我决定创建xmlXElement片段来创建一个基本的数字用户线。例如。而不是...newXElement("root",newXElement("request",newXElement("messageData",...)));我打算使用:Root(Request(MessageData(...)));将Root、Request和MessageData(当然,这些仅用于说明目的)定义为静态方法,它们都执行类似于以下操作的操作:

c# - 验证 XDocument 时捕获架构信息

这类似于这个问题C#Getschemainformationwhenvalidatingxml但是,我正在为LINQ目的使用XDocument。我正在读取/解析一组CSV文件并将其转换为XML,然后根据XSD架构验证XML。我想捕获与元素值相关的特定错误,生成对用户更友好的消息,并将它们返回给用户以便更正输入数据。我想包含在输出数据中的项目之一是一些架构信息(例如数字类型的可接受值范围)。在我目前的方法(我愿意改变)中,我能够捕获除模式信息之外的所有我需要的东西。我尝试访问验证事件处理程序的ValidationEventArgs参数中的SourceSchemaObject,但它始终为n

c# - 如何使用 XmlWriter 将 System.Xml.Linq.XElement 写入流

我有一个XElement实例,我希望使用XmlWriter类写入流。为什么?好吧,其中一个配置设置定义了是否使用二进制Xml。基于此设置,创建合适的XmlWriter实例-通过XmlWriter.Create(stream)或XmlDictionaryWriter.CreateBinaryWriter(stream))。无论如何,我正在尝试以下代码,但它使流为空:using(varstream=newMemoryStream()){varxmlReader=newXDocument(xml).CreateReader();xmlReader.MoveToContent();varxml

c# - 在解析期间设置命名空间

您好,我目前在解析不带任何namespace的Xml字符串并将其添加到具有namespace的现有XElement时遇到问题。我的代码:XElementelem=root.Element(xs+"methodCall");if(elem!=null){XElemente=XElement.Parse(this.MethodCallXML);elem.Add(e);}结果:espSessionState1truehttp://uri1false我的问题是xmlns=""我无法弄清楚如何使用解析方法创建节点并为其提供默认namespace以供使用。有什么办法吗?

C#:如何从 XElement 中获取名称(带前缀)作为字符串?

这可能是重复的,因为我的问题看起来很微不足道,但我无法在stackoverflow.com上找到答案。.我有一个包含如下数据的XElement:Myvalue问题:如何从XElement中获取带前缀的完整名称作为字符串?预期结果:abc:MyElement 最佳答案 到目前为止,我的解决方案是使用XElement中可用的方法GetPrefixOfNamespace。虽然不是一个很好的解决方案,但它给了我想要的东西:XElementxml=newXElement(...);stringnameWithPrefix=xml.GetPre

c# - 如何将 XElement 写入已包含内容的 XmlWriter

我正在尝试以流方式编写一个非常大的XML文档。与其编写可能消耗过多内存的XDocument或XElement,不如使用XmlWriter编写根元素,并且然后在关闭根元素之前,一个接一个地向该编写器写入许多XElement。但是,我还没有找到这样做的方法。要模拟该问题,请考虑以下代码:usingSystem;usingSystem.Xml;usingSystem.Xml.Linq;internalstaticclassProgram{privatestaticvoidMain(){varsettings=newXmlWriterSettings{Encoding=Console.Outp

c# - 如何遍历所有 XElement 属性并获取它们的值

如何遍历所有XElement属性并获取它们的值?foreach(SyndicationElementExtensionextensioninf.ElementExtensions){XElementelement=extension.GetObject();//Howtoloopthroughallitsattributesandgettheirvalues?}谢谢! 最佳答案 简单-使用Attributes()方法:foreach(varattributeinelement.Attributes()){stringvalue=at

c# - 通过 XPathSelectElements 获取具有命名空间的 XElement

我有一个XML例如这是示例代码:varxDoc=XDocument.Load("Test.xml");stringxPath="//B2/C3/D4";//orstringxPath="//B2/C3/D4[@id='1']";vareleList=xDoc.XPathSelectElements(xPath).ToList();foreach(varxElementineleList){Console.WriteLine(xElement);}它工作得很好,但如果我将命名空间添加到根节点A1,此代码将不起作用。在搜索解决方案时,我找到了thisone,但它使用Descendants(

C# - 如何从 XElement 中删除 xmlns

如何从XElement中删除xmlns命名空间?我尝试了:attributes.remove、xElement.Name.NameSpace.Remove(0)等等,但都没有成功。我的xml:我怎样才能做到这一点? 最佳答案 @octaviocc的回答对我不起作用,因为xelement.Attributes()是空的,它没有将命名空间作为属性返回。以下内容将删除您案例中的声明:element.Name=element.Name.LocalName;如果您想对您的元素和所有子元素递归执行此操作,请使用以下内容:privatestati