Tag: xml

你将如何在c#中构建这个xml

我需要生成这个简单的XML,寻找一种生成它的简洁方法。 2343> 2333> USA 23434 32

在C#中实现我自己的XPathNavigator

我正在寻找从Microsoft的XPathNavigator类派生的类的C#示例实现。 任何人都可以指出我这样的文章吗? 正如您可能(或可能不知道)所知,XmlNavigator旨在允许在大多数数据模型上叠加XPath导航。 我已经实现了我的派生XPathNavigator类,它运行得很好。 很好,除了递归搜索的XPath表达式,即“// *”。 我很确定我在Clone,MoveToFirstChild或MoveTo overides中有一个微妙的错误,我认为如果存在另一个例子,我可能会有所帮助。 另外,我确信我已经看过杂志文章,讨论这个问题。 事实certificate我的搜索没有任何结果。 也许有人记得这样的文章。

通过XML文档循环

我的方法: if (File.Exists( @”C:\config.xml”)) { System.Xml.XmlDocument xd = new System.Xml.XmlDocument(); xd.Load( @”C:\config.xml”); System.Xml.XmlElement root = xd.DocumentElement; System.Xml.XmlNodeList nl = root.SelectNodes(“/config”); foreach (System.Xml.XmlNode xnode in nl) { string name = xnode.Name; string value = xnode.InnerText; string nv = name + “|” + value; Send(nv); } 我的Xml Doc D 300 34000 3800 help 1 ….and so on […]

XML:如何删除所有没有属性的节点或子元素

我有一个像这样的xml文档: 这里是我要删除的节点,因为它没有子元素和元素,也没有任何属性。

有没有办法管理不规则XML文档的更改,就像使用DataTable一样?

我正在寻找一种方法来导入和导出XML数据文档的更改列表(不规则的结构;不自然地适合DataSet)。 如果我有一个常规结构,我将使用DataTable,我可以评估哪些记录已被编辑,然后提交或取消更改,我还可以传输所需更改的数据包。 如何使用XML数据执行此操作? 如果没有一个好的答案我认为我最好的选择是使用DataTable和方案[XPath,Value],尽管存储效率低,导航困难。 我希望对文档进行更改(使用XPath或LINQ或数据绑定控件或其他),然后记住更改并仅通过TCP发送更改。 然后我想收到另一个更改列表并将其应用于XML文档。 我不想发送整个文档的大小,因为我需要知道并评估发送的更改。 (只是为了澄清:我的程序需要发送和接收文档更改。管道的另一端不是基于.net,并不是这个问题的一部分。)

在C#中使用本地DTD文件validationXML文件的问题

我正在试图validationXML文件。 我正在使用此代码 XmlReaderSettings settings = new XmlReaderSettings(); settings.ProhibitDtd = false; settings.ValidationType = ValidationType.DTD; settings.ValidationEventHandler += new ValidationEventHandler(validationError); XmlSchemaSet schemas = new XmlSchemaSet(); settings.Schemas = schemas; XmlReader reader = XmlReader.Create(lblXmlPath.Text, settings); reader.Settings.Schemas.Add(null, lblDTDPath.Text); while (reader.Read()) { // empty by now } reader.Close(); 但在行“reader.Settings.Schemas.Add(null,lblDTDPath.Text);” Visual Studio向我显示错误“出于安全原因,此XML文档中禁止使用DTD。要启用DTD处理,请将XmlReaderSettings上的ProhibitDtd属性设置为false并将设置传递给XmlReader.Create方法” 正如您在代码中看到的那样,ProhibitDtd被设置为false(我也在调试期间validation过)。 我还尝试在调用XmlReader.Create()之前添加Schema,但没有成功。

在Code中从XML创建XSD

我正在使用MSDN这段代码从XML创建XSD XmlReader reader = XmlReader.Create(“contosoBooks.xml”); XmlSchemaSet schemaSet = new XmlSchemaSet(); XmlSchemaInference schema = new XmlSchemaInference(); schemaSet = schema.InferSchema(reader); foreach (XmlSchema s in schemaSet.Schemas()) { textbox.text = s.ToString(); } 我想根据我的xml文件输出.xsd。 当我生成.xsd文件时,我唯一得到的内容是: System.Xml.Schema.XmlSchema 当我使用Visual Studio选项生成XSD来创建Schema时,它会正确显示。 但是,我有超过150个xml文档,我需要创建XSD,因此需要一个编程选项。 有人可以帮忙吗?

如何加密/解密XML文件?

我正在尝试加密/解密XML文件。 我发现这个样本用于加密但我不知道如何解密? 任何的想法? 谢谢! // Load this XML file System.Xml.XmlDocument myDoc = new System.Xml.XmlDocument(); myDoc.Load(@”c:\persons.xml”); // Get a specified element to be encrypted System.Xml.XmlElement element = myDoc.GetElementsByTagName(“Persons”)[0] as System.Xml.XmlElement; // Create a new TripleDES key. System.Security.Cryptography.TripleDESCryptoServiceProvider tDESkey = new System.Security.Cryptography.TripleDESCryptoServiceProvider(); // Form a Encrypted XML with the Key System.Security.Cryptography.Xml.EncryptedXml encr = new System.Security.Cryptography.Xml.EncryptedXml(); encr.AddKeyNameMapping(“Deskey”, tDESkey); […]

在C#中以编程方式检查XML文件格式良好的最快方法是什么?

我有大批手动更新的XHTML文件。 在更新的审查阶段,我想以编程方式检查文件的格式。 我目前正在使用XmlReader ,但平均CPU所需的时间比我预期的要长得多。 XHTML文件的大小范围为4KB到40KB,每个文件的validation需要几秒钟。 检查是必不可少的,但我希望尽可能缩短时间,因为在将文件读入下一个流程步骤时执行检查。 有没有更快的方法来进行简单的XML格式检查? 也许使用外部XML库? 我可以确认使用XmlReadervalidation“常规”基于XML的内容是非常快速的,并且正如所建议的那样,问题似乎与每次validation文件时读取XHTML DTD的事实有关。 请注意,除了DTD之外,还会下载相应的.ent文件(xhtml-lat1.ent,xhtml-symbol.ent,xhtml-special.ent)。 由于完全忽略DTD并不是XHTML的真正选择,因为良好的格式与允许的HTML实体密切相关(例如,当我们忽略DTD时,会立即引入validation错误)。 通过使用建议的自定义XmlResolver ,结合DTD和实体文件的本地(嵌入)副本,解决了该问题。 一旦我清理了代码,我会在这里发布解决方案

如果返回格式是xml,如何删除web api中的模式节点?

我有一个web api方法,它将format作为一个参数,提供返回xml和json。方法返回的数据类型是DataTable.In json格式一切看起来很好但是xml格式的数据表的模式和xml节点中的一些其他属性还返回。如何返回仅包含datatable数据的简单xml?另外,我在WebApiConfig中使用QueryStringMapping。 这是WebApiConfig代码 public static void Register(HttpConfiguration config) { config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: “DefaultApi”, routeTemplate: “api/{controller}/{action}/{id}”, defaults: new { id = RouteParameter.Optional } ); config.Formatters.JsonFormatter.MediaTypeMappings.Add(new QueryStringMapping(“format”, “json”, new MediaTypeHeaderValue(“application/json”))); config.Formatters.XmlFormatter.MediaTypeMappings.Add(new QueryStringMapping(“format”, “xml”, new MediaTypeHeaderValue(“application/xml”))); GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.Formatting = Newtonsoft.Json.Formatting.Indented; } 这是控制器方法的伪代码 [BasicAuthentication] [Route(“api/{tablename}”)] [HttpGet] public IHttpActionResult Get(string tablename, string orders = “”, int limit = 100) { […]