Как я могу десериализовать глубоко вложенный xml с несколькими пространствами имен? - PullRequest
0 голосов
/ 12 июня 2019

[Извините за мой английский] У меня есть следующий документ XML.В документе много вложений, и мне просто нужно поле.Поэтому я думаю, что нет необходимости создавать много объектов только для того, чтобы получить некоторые поля.

<cac:root>    
   <cac:a>
    <cbc:b>
     <ccc:c>
       ....
        <czc:z>
          here i'm
        </czc:z>
       ....
     </ccc:c>   
    </cbc:b>
   </cac:a>

   <cac:x>
     some value 1
   </cac:x>

   <cbc:y>
     some value 2
   </cbc:y>
</cac:root>  

Я отображаю это следующим образом

Some_object objectx = (some_object)serializer.Deserialize(some_reader);

...

[Serializable()]
[XmlRoot(ElementName = "root", Namespace = cac)]
public class Invoice_DTO
{
    public const string cac = "some_namespace A";
    public const string cbc = "some_namespace B";
    public const string ccc = "some_namespace C"; 
    ....


    [XmlElement(ElementName = "x", Namespace = cac)]
    public string element_x { get; set; }

    [XmlElement(ElementName = "y", Namespace = cbc)]
    public string element_y { get; set; }

    [XmlElement(ElementName = "z", ?????)]
    public string element_z { get; set; }
 }

пожалуйста, есть идеи?

...