Tag: linq to xml

使用C#,LINQ从xml字符串中读取子节点

– http://testserver.windows.net/Players(PartitionKey=’zzz’,RowKey=’000125′) 2014-04-30T00:53:42Z – – – zzz 000125 2014-04-30T00:04:02.9193525Z Black color Test comments 如何使用C#或LINQ读取“m:properties”后代。 此xml字符串存储在XElement类型的变量中

从磁盘加载XML时,我得到System.UnauthorizedAccessException

我正在使用Windows 8 XAML / C#商店应用程序。 我试图在应用程序的生命周期中多次将XML从Windows.Storage.ApplicationData.Current.LocalFolder加载到XDocument 。 但是,当我尝试加载文件时,我收到System.UnauthorizedAccessException 。 这是我的方法: 要添加到XML: private async void AddCategoryButton_Click(object sender, RoutedEventArgs e) { XDocument CategoryListXDoc = await LoadXmlFromLocalFolderAsync(“Categories.xml”); CategoryListXDoc.Element(“CategoryList”).Add( new XElement(“Category”, new XAttribute(“Id”, Guid.NewGuid()), AddCategoryTextBox.Text)); SaveXDocToLocalFolderAsync(“Categories.xml”, CategoryListXDoc); } 仅用于调试目的: private async void Button_Click_2(object sender, RoutedEventArgs e) { XDocument TempXDoc = await LoadXmlFromLocalFolderAsync(“Categories.xml”); Debug.WriteLine(TempXDoc); } 加载和保存方法: private async Task LoadXmlFromLocalFolderAsync(string […]

XDocument到对象列表

XDocument的内容是下面的XML。 我想获得一个List(),请参阅此消息的末尾。 public class MyData { public string MainCode { get; set; } public string Code { get; set; } public string Value { get; set; } } 我想要一个List()这个内容应该是这样的: new MyData { MainCode = “01”; Code = “A”; Value = “A1” }; new MyData { MainCode = “01”; Code = “B”; Value = “B1” }; […]

根据日期,从XML获取今天和接下来两天的值?

目标:根据今天的日期和月份,从XML获取实际值和接下来的两天值。 问题:虽然我的c.Attribute(“Day”)。值更改,但我的c.Attribute(“Month”)。值保持不变。 因此,如果实际的一天我在2012年4月30日,那么它将显示30.04.2012而不是01.05.2012和02.05.2012的prayertimes。 怎么解决这个? 此外,我不确定这个Dato = c.Attribute(“Day”).Value + “.” + c.Attribute(“Month”).Value + “.” + myDay.Year.ToString(), Dato = c.Attribute(“Day”).Value + “.” + c.Attribute(“Month”).Value + “.” + myDay.Year.ToString(), Dato = c.Attribute(“Day”).Value + “.” + c.Attribute(“Month”).Value + “.” + myDay.Year.ToString(),有什么好处? 我希望列表框显示它获取的xml的日期。 请帮忙。 我的代码,XML和类如下。 var filteredData3 = from c in loadedCustomData.Descendants(“PrayerTime”) where int.Parse(c.Attribute(“Day”).Value) >= myDay.Day && int.Parse(c.Attribute(“Day”).Value) < (myDay.Day […]

XDocument的特殊字符

我正在尝试读取一个文件(不是XML,但结构类似),但我得到了这个例外: ‘┴’, hexadecimal value 0x15, is an invalid character. Line 8, position 7. 并且文件中有很多这样的符号,我无法替换,因为我不能为了我的目的修改文件的内容… 那是代码: try { XDocument doc = new XDocument(new XDeclaration(“1.0”, “utf-16”, “yes”)); doc = XDocument.Load(arquivo); } catch (Exception e) { MessageBox.Show(e.Message.ToString()); } 这是文件的一部分: UTF16 0000016125 0003┴300000┴English(US)PORTUGUESE┴┴bla.000┴webgui\messages\xsl\en\blabla\blabla.xlf To blablablah the firewall to blablablah local IP address. Para blablablah a uma blablablah local específico. […]

你调用的对象是空的。 试图将XML放入List中

我必须遵循XML代码,我想将其转换为带有键和值的List: getClient 10292 我的C#代码是这样的: XElement aValues = XElement.Parse(sMessage); List<KeyValuePair> oValues = aValues.Element(“root”).Elements().Select(e => new KeyValuePair(e.Name.ToString(), e.Value)).ToList(); sMessage是XML字符串。 现在我收到以下错误,我无法弄清楚原因:“对象引用未设置为对象的实例。” 有人可以帮帮我吗? 提前致谢!

将对象列表序列化为XDocument

我正在尝试使用以下代码将对象列表序列化为XDocument,但我收到一条错误消息,指出“无法将非空格字符添加到内容中” public XDocument GetEngagement(MyApplication application) { ProxyClient client = new ProxyClient(); List engs; List allEngs = new List(); foreach (Applicant app in application.Applicants) { engs = new List(); engs = client.GetEngagements(“myConnString”, app.SSN.ToString()); allEngs.AddRange(engs); } DataContractSerializer ser = new DataContractSerializer(allEngs.GetType()); StringBuilder sb = new StringBuilder(); System.Xml.XmlWriterSettings xws = new System.Xml.XmlWriterSettings(); xws.OmitXmlDeclaration = true; xws.Indent = true; […]

LINQ to XML。 如何获得一些字符串?

我有xml: Ray Other LargeCover MiniCover 如何获得字符串“MiniCover”? 我写了代码,但它不起作用 – 字符串是空的; string testLink = (@”Text.xml”); XDocument xml = XDocument.Load(testLink); string cv = String.Empty; var c = from cover in xml.Elements(“book”) where (string)cover.Attribute(“size”).Value == “mini” select cover.Value; foreach (var item in c) { cv += item.ToString(); } MessageBox.Show(cv); 谢谢!

XDocument使用不同的本地名称重复命名空间

我有一个XML文档,如下所示: 我使用下面的代码来修改文档的Property Element: XElement csdlEentity = csdlDoc.Root.Descendants() .Where(d => d.Name.LocalName == “EntityType”) .FirstOrDefault(e => e.Attribute(“Name”).Value == “Customer”); var csdlProperty = csdlEentity.Descendants() .Where(d => d.Name.LocalName == “Property”) .FirstOrDefault(e => e.Attribute(“Name”).Value == “Id”); XNamespace annotation = “http://schemas.microsoft.com/ado/2009/02/edm/annotation”; var attrib = new XAttribute(annotation + “StoreGeneratedPattern”, “Computed”); csdlProperty.Add(attrib); 当我保存XDocument时,Property Element看起来像: 不过我想要的是: 问题是xmlns“ http://schemas.microsoft.com/ado/2009/02/edm/annotation ”在文档的根节点中被引用两次,带有两个不同的别名/ LocalNames(注释,p1) xmlns:annotation=”http://schemas.microsoft.com/ado/2009/02/edm/annotation” xmlns:p1=”http://schemas.microsoft.com/ado/2009/02/edm/annotation” 我无法更改或篡改根节点。 如何保存文档或更新属性元素以提供所需的输出?

在XDocument中定位和设置元素值的最有效方法是什么?

给出以下XML“模板”: {USERNAME} {PASSWORD} {CLIENT-ID} {SERVICE-ID} 使用XDocument,在花括号中设置值的最佳方法是什么。 到目前为止,我已经陷入了选择元素中三个节点中每个节点的最佳方法。 这只是XML的一小部分,其他可能最多包含20个元素。 构建XML的方式不是我的创建,而是我们必须发送给供应商的“网络服务”……在任何人对格式=“计数”属性笑之前:) @David – 为响应欢呼,赞赏。 我有点希望它有点优雅,有点像: List e = doc.Descendants(“a”).ToList(); e.Where(x => x.Attributes(“name”) == “username”).Single().Value = “abc”; e.Where(x => x.Attributes(“name”) == “password”).Single().Value = “abc”; 显然,上面的代码不起作用,但我认为每个标签都会有一个优雅的衬垫