相关疑难解决方法(0)

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>
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)

c# xml linq linq-to-xml

188
推荐指数
5
解决办法
40万
查看次数

在C#中使用XmlReader读取Xml

我正在尝试尽可能快地阅读以下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 .

听起来很简单!

c# xml xmlreader

90
推荐指数
5
解决办法
32万
查看次数

XML错误:有多个根元素

我从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)

c# xml

45
推荐指数
4
解决办法
11万
查看次数

Linq to XML将元素添加到特定子树

我的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不是我的好朋友:(

c# xml linq

9
推荐指数
1
解决办法
2万
查看次数

如何使用Linq反序列化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)

c# xml linq

6
推荐指数
1
解决办法
6388
查看次数

标签 统计

c# ×5

xml ×5

linq ×3

linq-to-xml ×1

xmlreader ×1