我现在正在学习,XmlDocument
但我刚刚遇到XDocument
,当我试图搜索他们的差异或好处时,我找不到有用的东西,你能告诉我为什么你会使用一个而不是另一个吗?
我正在做一些小事情,我想弄清楚我是否可以从字符串加载XDocument.XDocument.Load()
似乎将传递给它的字符串作为物理XML文件的路径.
我想尝试绕过首先必须创建物理XML文件的步骤,然后直接跳转到填充XDocument.
有任何想法吗?
我有这个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>
Run Code Online (Sandbox Code Playgroud)
有人可以使用LINQ给我一个C#代码,这是打印此结果的最简单方法:(
如果它是一个level2节点,请注意额外的空间)
A
A1
A2
B
B1
B2
C
Run Code Online (Sandbox Code Playgroud)
目前我得到了这段代码
XDocument xdoc = XDocument.Load("data.xml"));
var lv1s = from lv1 in xdoc.Descendants("level1")
select lv1.Attribute("name").Value;
foreach (var lv1 in lv1s)
{
result.AppendLine(lv1);
var lv2s = from lv2 in xdoc...???
}
Run Code Online (Sandbox Code Playgroud) 这是一个非常简单的问题.我使用XDocument生成XML文件.然后我想将它作为XmlDocument类返回.我有一个XmlDocument变量,我需要将其转换回XDocument以追加更多节点.
那么,在XDocument和XmlDocument之间转换XML 的最有效方法是什么?(不使用文件中的任何临时存储.)
我在VS IntelliSense中遇到过这两个关键字.我试图谷歌搜索他们之间的差异,并没有得到一个明确的答案.其中哪一个具有中小型XML文件的最佳性能.谢谢
我有一个XDocument
对象.我想使用LINQ在任何深度查询具有特定名称的元素.当我使用时Descendants("element_name")
,我只获得了当前级别的直接子元素.我正在寻找的是相当于XPath中的"// element_name"...我应该使用XPath
,还是有办法使用LINQ方法?谢谢.
我正在将我的代码格式XML切换为JSON.
但我找不到如何从给定的URL获取JSON字符串.
URL是这样的:" https://api.facebook.com/method/fql.query?query=.....&format=json "
之前我使用过XDocuments,我可以使用load方法:
XDocument doc = XDocument.load("URL");
Run Code Online (Sandbox Code Playgroud)
这个JSON方法的等价物是什么?我正在使用JSON.NET.
我有这个代码:
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.
Run Code Online (Sandbox Code Playgroud)
如何将属性放入Conn?我想把这个我标记为注释的属性,但是如果我尝试在定义后将属性设置为Conn Conn
它们不是visibe ...所以我想以某种方式设置它们以便XML开始如下所示:
<Type>
<Connections>
<Conn ServerName="FAXSERVER\SQLEXPRESS" DataBase="SPM_483000" />
<Conn ServerName="FAXSERVER\SQLEXPRESS" DataBase="SPM_483000" />
</Connections>
<UDLFiles />
</Type>
Run Code Online (Sandbox Code Playgroud) 有一个类似的问题,但似乎解决方案在我的情况下没有用: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>
Run Code Online (Sandbox Code Playgroud)
以下是我认为它应该工作的代码,但它没有......
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);
Run Code Online (Sandbox Code Playgroud)
有没有人有任何想法?谢谢.
有没有办法在toString()函数中获取xml编码?
例:
xml.Save("myfile.xml");
Run Code Online (Sandbox Code Playgroud)
导致
<?xml version="1.0" encoding="utf-8"?>
<Cooperations>
<Cooperation>
<CooperationId>xxx</CooperationId>
<CooperationName>Allianz Konzern</CooperationName>
<LogicalCustomers>
Run Code Online (Sandbox Code Playgroud)
但
tb_output.Text = xml.toString();
Run Code Online (Sandbox Code Playgroud)
导致像这样的输出
<Cooperations>
<Cooperation>
<CooperationId>xxx</CooperationId>
<CooperationName>Allianz Konzern</CooperationName>
<LogicalCustomers>
...
Run Code Online (Sandbox Code Playgroud)