Questions tagged «linq-to-xml»

LINQ-to-XML提供了类似SQL的查询体验,用于导航,解析和聚合XML文档中存储的数据。

7
XDocument或XmlDocument
我现在正在学习,XmlDocument但是我碰到了什么XDocument,当我尝试搜索它们的区别或好处时,我找不到有用的东西,您能否告诉我为什么您要使用另一个?

4
从字符串填充XDocument
我正在做一些事情,我试图弄清楚是否可以从字符串加载XDocument。XDocument.Load()似乎将传递给它的字符串作为物理XML文件的路径。 我想尝试绕过首先必须创建物理XML文件并直接跳至填充XDocument的步骤。 有任何想法吗?
358 c#  xml  c#-3.0  linq-to-xml 

5
LINQ读取XML
我得到了这个XML文件: <root> <level1 name="A"> <level2 name="A1" /> <level2 name="A2" /> </level1> <level1 name="B"> <level2 name="B1" /> <level2 name="B2" /> </level1> <level1 name="C" /> </root> 有人可以使用LINQ给我一个C#代码,这是打印此结果的最简单方法:( 请注意,如果它是一个level2节点,则需要额外的空间) A A1 A2 B B1 B2 C 目前,我得到了以下代码: XDocument xdoc = XDocument.Load("data.xml")); var lv1s = from lv1 in xdoc.Descendants("level1") select lv1.Attribute("name").Value; foreach (var lv1 …
194 c#  xml  linq  linq-to-xml 

7
将XDocument转换为XmlDocument,反之亦然
我有一个非常简单的问题。我使用XDocument生成XML文件。然后,我想将其作为XmlDocument类返回。我有一个XmlDocument变量,我需要将其转换回XDocument以附加更多节点。 那么,在XDocument和XmlDocument之间转换XML 的最有效方法是什么?(不使用文件中的任何临时存储。)
189 c#  xml  linq-to-xml 


3
如何从URL获取一个JSON字符串?
我将代码形式的XML从XML转换为JSON。 但是我找不到如何从给定的URL获取JSON字符串。 网址是这样的:“ https://api.facebook.com/method/fql.query?query=.....&format=json “ 我以前使用过XDocuments,可以在其中使用load方法: XDocument doc = XDocument.load("URL"); 此方法与JSON等效吗?我正在使用JSON.NET。

10
在XDocument的任何深度按名称查询元素
我有一个XDocument对象。我想使用LINQ在任何深度查询具有特定名称的元素。使用时Descendants("element_name"),我只会得到当前级别的直接子级元素。我要寻找的是XPath中的“ // element_name”等价...我应该只使用XPath,还是可以使用LINQ方法来做到这一点?谢谢。
143 c#  .net  xml  linq  linq-to-xml 

1
如何通过XElement放置属性
我有以下代码: XElement EcnAdminConf = new XElement("Type", new XElement("Connections", new XElement("Conn"), // Conn.SetAttributeValue("Server", comboBox1.Text); // Conn.SetAttributeValue("DataBase", comboBox2.Text))), new XElement("UDLFiles"))); // Conn. 如何添加属性Conn?我想添加标记为注释的属性,但是如果Conn在定义后尝试将其设置为on EcnAdminConf,则这些属性将不可见。 我想以某种方式设置它们,以便XML看起来像这样: <Type> <Connections> <Conn ServerName="FAXSERVER\SQLEXPRESS" DataBase="SPM_483000" /> <Conn ServerName="FAXSERVER\SQLEXPRESS" DataBase="SPM_483000" /> </Connections> <UDLFiles /> </Type>
126 c#  xml  linq-to-xml 

3
如何在XDocument中使用XPath?
还有一个类似的问题,但是在我看来,该解决方案没有解决:XDocument,XPath和名称空间的怪异之处 这是我正在使用的XML: <?xml version="1.0" encoding="utf-8"?> <Report Id="ID1" Type="Demo Report" Created="2011-01-01T01:01:01+11:00" Culture="en" xmlns="http://demo.com/2011/demo-schema"> <ReportInfo> <Name>Demo Report</Name> <CreatedBy>Unit Test</CreatedBy> </ReportInfo> </Report> 下面是我认为应该可以正常运行的代码,但是没有成功... XDocument xdoc = XDocument.Load(@"C:\SampleXML.xml"); XmlNamespaceManager xnm = new XmlNamespaceManager(new NameTable()); xnm.AddNamespace(String.Empty, "http://demo.com/2011/demo-schema"); Console.WriteLine(xdoc.XPathSelectElement("/Report/ReportInfo/Name", xnm) == null); 有人有什么想法吗?谢谢。
109 c#  .net  xml  xpath  linq-to-xml 

8
XDocument.ToString()删除XML编码标签
有什么方法可以在toString()函数中获取xml编码吗? 例: xml.Save("myfile.xml"); 导致 <?xml version="1.0" encoding="utf-8"?> <Cooperations> <Cooperation> <CooperationId>xxx</CooperationId> <CooperationName>Allianz Konzern</CooperationName> <LogicalCustomers> 但 tb_output.Text = xml.toString(); 导致这样的输出 <Cooperations> <Cooperation> <CooperationId>xxx</CooperationId> <CooperationName>Allianz Konzern</CooperationName> <LogicalCustomers> ...
103 c#  linq-to-xml 

2
在C#中使用XDocument创建XML文件
我有一个List<string>“ sampleList”,其中包含 Data1 Data2 Data3... 文件结构就像 <file> <name filename="sample"/> <date modified =" "/> <info> <data value="Data1"/> <data value="Data2"/> <data value="Data3"/> </info> </file> 我目前正在使用XmlDocument执行此操作。 例: List<string> lst; XmlDocument XD = new XmlDocument(); XmlElement root = XD.CreateElement("file"); XmlElement nm = XD.CreateElement("name"); nm.SetAttribute("filename", "Sample"); root.AppendChild(nm); XmlElement date = XD.CreateElement("date"); date.SetAttribute("modified", DateTime.Now.ToString()); root.AppendChild(date); XmlElement …
83 c#  xml  linq-to-xml 

6
在不知道名称空间的情况下使用LINQ搜索XDocument
有没有不知道名称空间的搜索XDocument的方法?我有一个记录所有SOAP请求并加密敏感数据的过程。我想根据名称查找任何元素。像这样,给我所有名称为CreditCard的元素。我不在乎命名空间是什么。 我的问题似乎与LINQ有关,并且需要一个xml名称空间。 我还有其他从XML检索值的进程,但是我知道这些其他进程的名称空间。 XDocument xDocument = XDocument.Load(@"C:\temp\Packet.xml"); XNamespace xNamespace = "http://CompanyName.AppName.Service.Contracts"; var elements = xDocument.Root .DescendantsAndSelf() .Elements() .Where(d => d.Name == xNamespace + "CreditCardNumber"); 我确实希望能够在不了解名称空间的情况下搜索xml,如下所示: XDocument xDocument = XDocument.Load(@"C:\temp\Packet.xml"); var elements = xDocument.Root .DescendantsAndSelf() .Elements() .Where(d => d.Name == "CreditCardNumber") 这是行不通的,因为在编译时我不知道名称空间。 如何才能做到这一点? <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Request xmlns="http://CompanyName.AppName.Service.ContractA"> <Person> …
81 c#  linq-to-xml 

5
如何在XElement或LINQ中使用XPath?
考虑以下XML: <response> <status_code>200</status_code> <status_txt>OK</status_txt> <data> <url>http://bit.ly/b47LVi</url> <hash>b47LVi</hash> <global_hash>9EJa3m</global_hash> <long_url>http://www.tumblr.com/docs/en/api#api_write</long_url> <new_hash>0</new_hash> </data> </response> 我正在寻找一种获取<hash>元素值的非常短的方法。我试过了: var hash = xml.Element("hash").Value; 但这不起作用。是否可以向提供XPath查询XElement?我可以使用较旧的System.Xml框架来执行此操作,例如: xml.Node("/response/data/hash").Value LINQ名称空间中是否有类似的东西? 更新: 经过进一步研究之后,我找到了一种方法来做我想做的事情: var hash = xml.Descendants("hash").FirstOrDefault().Value; 我还是想看看是否有人有更好的解决方案?

5
名称中不能包含':'字符,十六进制值0x3A
我有一个包含其元素的xml文件,例如 <ab:test>Str</ab:test> 当我尝试使用代码访问它时: XElement tempElement = doc.Descendants(XName.Get("ab:test")).FirstOrDefault(); 这给了我这个错误: System.Web.Services.Protocols.SoapException:服务器无法处理请求。---> System.Xml.XmlException:名称中不能包含':'字符,十六进制值0x3A。 我应该如何访问?
77 c#  xml  linq  linq-to-xml 

5
如何在LINQ中将元素进行深拷贝到XML?
我想将LINQ复制到XML XElement。我要执行此操作的原因是文档中有一些节点要创建(在同一文档中)修改后的副本。我看不到执行此操作的方法。 我可以将元素转换为XML字符串,然后重新解析,但我想知道是否有更好的方法。
76 .net  linq-to-xml 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.