2015-11-25 88 views
-1

我有下面的XML:合并XML元素

<Books> 
    <Title>Book 1</Title> 
    <Author>A</Author> 
</Books> 
<Books> 
    <Title>Book 2</Title> 
    <Author>B</Author> 
</Books> 

输出:

<Books> 
    <Title>Book 1</Title> 
    <Author>A</Author> 
    <Title>Book 2</Title> 
    <Author>B</Author> 
</Books> 

我想在C#写得到的结果作为输出,我该怎么办?

+3

和你有什么想实现这一目标呢?你的C#代码在哪里? –

回答

0

在这个例子中newDoc将包含你想

var xml = @" 
<xml> 
    <Books> 
     <Title>Book 1</Title> 
     <Author>A</Author> 
    </Books> 
    <Books> 
     <Title>Book 2</Title> 
     <Author>B</Author> 
    </Books> 
</xml>"; 

var originalElements = XDocument.Parse(xml).Root.Elements("Books").Descendants(); 
var newDoc = new XDocument(new XElement("Books", originalElements)); 
+0

感谢mortb回答:) – Piseth

1

创建这个类:

using System; 
using System.Xml.Serialization; 
using System.Collections.Generic; 
namespace Xml2CSharp 
{ 
    [XmlRoot(ElementName="Books")] 
    public class Books { 
     [XmlElement(ElementName="Title")] 
     public List<string> Title { get; set; } 
     [XmlElement(ElementName="Author")] 
     public List<string> Author { get; set; } 
    } 

} 

而且随着XMLReader

分析XML但是你的XML是不是真的很好形成。 我推荐类似的东西:

<Books> 
<Book> 
<Title>Book 1</Title> 
    <Author>A</Author> 
</Book> 
<Book>  
    <Title>Book 2</Title> 
    <Author>B</Author> 
    </Book> 
</Books> 
+0

不需要书籍和书签。不同意,这是不正确的。 – jdweng

+0

Xavier W. - 感谢您的建议,如果我的XML输出如此,那么它对XSD无效 – Piseth