我有这个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) 我正在尝试尽可能快地阅读以下Xml文档,并让其他类管理每个子块的读取.
<ApplicationPool>
<Accounts>
<Account>
<NameOfKin></NameOfKin>
<StatementsAvailable>
<Statement></Statement>
</StatementsAvailable>
</Account>
</Accounts>
</ApplicationPool>
Run Code Online (Sandbox Code Playgroud)
但是,我正在尝试使用XmlReader对象来读取每个帐户,然后使用"StatementsAvailable".你建议使用XmlReader.Read并检查每个元素并处理它吗?
我想过分离我的类来正确处理每个节点.所以这是一个AccountBase类,它接受一个XmlReader实例,该实例读取NameOfKin和该帐户的其他几个属性.然后我想要通过语句进行交互,让另一个类填写有关语句(并随后将其添加到IList).
到目前为止,我通过执行XmlReader.ReadElementString()来完成"每个类"部分,但是我无法训练如何告诉指针移动到StatementsAvailable元素并让我遍历它们并让另一个类读取每个proeprties .
听起来很简单!
我从Web服务获取XML.这是XML的样子:
<parent>
<child>
Text
</child>
</parent>
<parent>
<child>
<grandchild>
Text
</grandchild>
<grandchild>
Text
</grandchild>
</child>
<child>
Text
</child>
</parent>
etc.
Run Code Online (Sandbox Code Playgroud)
这是我的C#代码:
StringBuilder output = new StringBuilder();
// Create an XmlReader
using (XmlReader reader = XmlReader.Create(new StringReader(xoResponse.@return)))
{
XmlWriterSettings ws = new XmlWriterSettings();
//ws.Indent = true;
using (XmlWriter writer = XmlWriter.Create(output, ws))
{
// Parse the file and display each of the nodes.
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element:
writer.WriteStartElement(reader.Name);
break;
case XmlNodeType.Text:
writer.WriteString(reader.Value);
break;
case XmlNodeType.XmlDeclaration:
case XmlNodeType.ProcessingInstruction: …
Run Code Online (Sandbox Code Playgroud) 我的XML:
<Bank>
<Customer id="0">
<Accounts>
<Account id="0" />
<Account id="1" />
</Accounts>
</Customer>
<Customer id="1">
<Accounts>
<Account id="0" />
</Accounts>
</Customer>
<Customer id="2">
<Accounts>
<Account id="0" />
</Accounts>
</Customer>
</Bank>
Run Code Online (Sandbox Code Playgroud)
我想添加新的Account元素,让我们说ID为2的客户.我知道如何添加行,我不知道如何指定客户(我在哪里写客户的ID?)
我的LINQ to XML代码:
XDocument document = XDocument.Load("database.xml");
document.Element("Bank").Element("Customer").Element("Accounts").Add
(
new XElement
(
"Account", new XAttribute("id", "variable")
)
);
document.Save("database.xml");
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助.XML不是我的好朋友:(
如何使用Linq反序列化这个xml?我想创造List<Step>
<MySteps>
<Step>
<ID>1</ID>
<Name>Step 1</Name>
<Description>Step 1 Description</Description>
</Step>
<Step>
<ID>2</ID>
<Name>Step 2</Name>
<Description>Step 2 Description</Description>
</Step>
<Step>
<ID>3</ID>
<Name>Step 3</Name>
<Description>Step 3 Description</Description>
</Step>
<Step>
<ID>4</ID>
<Name>Step 4</Name>
<Description>Step 4 Description</Description>
</Step>
</MySteps>
Run Code Online (Sandbox Code Playgroud)