我该如何解析这种格式化的XML?

问题描述:

这是从外部来源我该如何解析这种格式化的XML?

<d:entry id="_qkq" d:title="DuMont Television Network"> 
     <d:index d:value="DuMont Television Network" d:title="DuMont Television Network"/> 
     <d:index d:value="dumont tv" d:title="DuMont Television Network"/> 
     <d:index d:value="dumont network" d:title="DuMont Television Network"/> 
     <h1>DuMont Television Network</h1> 
     some value etc 
</d:entry> 

当前格式我有如果是类似下面一个我可以很容易地解析它。所以任何想法如何解析它像下面或将其转换为以下格式?

<entry> 
    <entryId>_qkq</entryId> 
    <entryTitle>DuMont Television Network</entryTitle> 
    <entryIndex> 
     <value>DuMont Television Network</value> 
     <title>DuMont Television Network</title> 
    </entryIndex> 
    <entryIndex> 
     <value>dumont tv</value> 
     <title>DuMont Television Network</title> 
    </entryIndex> 
    <entryIndex> 
     <value>dumont network</value> 
     <title>DuMont Television Network</title> 
    </entryIndex> 
    <entryValue> 
     <h1>DuMont Television Network</h1> 
     some value etc 
    </entryValue> 
</entry> 

非常感谢你的答案

+0

你可以使用这个:https://msdn.microsoft.com/de-de/library/system.xml.linq.xelement(v=vs.110).aspx –

+3

我会重复一次上次的评论你好d问这个问题。这不是一个代码写入服务,尝试一些东西,然后返回一个提供[MCVE]的特定问题。 – TheLethalCoder

+0

为了让你更容易,你有问题解析元素名称的'd:'部分或获得访问属性? – TheLethalCoder

好吧,这是相当容易的,可以在许多许多的方式来完成,但为了便于开发:

  1. 生成此XML类 - 在Visual Studio中,创建新的代码文件。将完整的XML复制到剪贴板。点击Edit-paste special - Paste XML as classes
    这将为您提供必要的课程,根目录为dictionary。 (如果你想我可以添加所产生的上市)
  2. 然后,在任何必要的文件,你可以做到以下几点:

    var data = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> \r\n<d:dictionary xmlns=\"w3.org/1999/xhtml\" xmlns:d=\"apple.com/DTDs/DictionaryService-1.0.rng\">\r\n\t<d:entry id=\"_qkq\" d:title=\"DuMont Television Network\">\r\n\t\t<d:index d:value=\"DuMont Television Network\" d:title=\"DuMont Television Network\"/>\r\n\t\t<d:index d:value=\"dumont tv\" d:title=\"DuMont Television Network\"/>\r\n\t\t<d:index d:value=\"dumont network\" d:title=\"DuMont Television Network\"/>\r\n\t\t<h1>DuMont Television Network</h1>\r\n\t</d:entry>\r\n</d:dictionary>"; 
    
        XmlSerializer serializer = new XmlSerializer(typeof(dictionary)); 
        using (TextReader reader = new StringReader(data)) 
        { 
        dictionary result = (dictionary)serializer.Deserialize(reader); 
        } 
    

result现在包含您的数据:

screenshot