ranio Ответов: 1

Как удалить узел с атрибутом xmlns из существующей строки XML в ASP.NET с помощью C#?


Я хочу удалить узел с атрибутом xmlns из существующей xml-строки в c#. Я хочу удалить узел запроса.
Мой xml выглядит следующим образом:
<?xml version="1.0" encoding="utf-16"?><Request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><webServiceRequest><entityDetails><entityId>038</entityId><userName>P049563445634674574325323674we5476956789057905694565745764256456</userName><password>6919301721649254400252100878956720265267481307739303873300957305</password><serviceId>WS001</serviceId><requesterWsiRef>WSI835180322000000</requesterWsiRef><RSASignature>TJQ4BQi3rWA5Xn77t6kkgQQSYafFK8Oe5CsPJGXoyDgp2n78lQ2yDMPWdT7rr4n3oPGUlJ6LMGX1v8sczXPysu/BVNGpGAs0LjJoAiRt4H0PbJodSLkKZRpoUuVkQG/QhAg3LXgulk3ID78CiO3dshCtfu0razVu+cZp6Tq8R8o=</RSASignature></entityDetails><requestDetails><encrypyedRequestKeyData>EV/VkI8uZMd5e+mOwbwb4Ha55rm9fAn6cT+74ocf2eimhoppLP2ylyDKo8SFOCgmHanV7eBEmFgaESU7s/BzewcRsRmnCtG5m/EC3pFFhNcoDwBIgOlCiQSl8Q+mTbXI1OvomTNIAfK5uyIczjsekUWiP8DHphPvgJTC/0La9Pc=</encrypyedRequestKeyData><encryptedRequestData>QGs0t0m1oEKAAAVOV+y+1cJqFMbRj52QOziDHbBCJjgovbdy8CK2apW0Elokd08+CnEgKrUCGm1ZjXojaq1GSRAr/Gkyp6mq7qbsXnQJmJwpAckCiKcTPKXuB+IGWzrDMT1dllQFnmoi2Q9UOQthTtHWmgm38jlzZfKJVR1GwZapNtxJec8z6Wt1lEdfpnz/MkGjTGyoMX7Ov6RDQJOlkloWqn57QeJW5xKYJiBNt1P5qn7BxPx0UfA3OZ4eHgx131cGmFUpeoiJ6p5qdNMt8CsbL6fRZ4OroKjiVf7huf7Aij+RrpBsEGwePtwKkt2ODZHJZTpt0tB0qHRD4TyK9bW30kSMaO9/SVQ7I1rKwkGWZ2YjANkAwS9fEU82QrOxZ+P5fPyLQiYU0ilXc8amwCUA5sT7q+st3W6FIh7Dy2cSRPi6uB030sQeH3Twg/x3S8NjR7L23DfddfBEUwBmPiI5N4glFSCxyr0UWNrtjyURaNhPn+znuHoyrMe6xMUD0yvTruCpUGOwo0dXRsdQDsomHsq9npwQV3AWfcyOG8UlAObE+6vrLd1uhSIew8tnWMMpYL0pdzhNHZgwK58KhdGeX4mosh+shtZy4N5OwlxQ8qJVum7wD+q3mTl7XKnnMfil0UXkGs3HsSKJuXY97oInn9XkSyFA9bJcIPOJcdVdg6/t5Ovlp4d1AVAOv3E3JQDmxPur6y3dboUiHsPLZ/yPd4MwoWqjwguiWKrFzbYXRt/PCuEKUs2GvKENir4Ai5Ks4UORnZESjxN80jZeiqbx+/6XuKmveblQYd90/kElAObE+6vrLd1uhSIew8tnntxijX5Felk9zjXZIGXMDlIqni7OnrrfmvG6rBFr2XAzMQ3dOs8xc6M6TQQ7PT8y7YpUp5MvawbOr434Yjsd1TppAdI1AE7RMdP2jc/87x/78UANzosw/6ziYyuWl3gkZacbD6QyZYB8EG+erHlwqKRRIOS/Bfsr1tOfj4HoX8ON4CbO4b08YviPtKjZz8oMXDgVgpCfEJ8nGU+CEMXYLc5XYK7dDYRDaiaOYZJcx1Llxj8mN+BPLFyiExtzt17pNcbowObgyWxfCxNi4WsnV9nKZOdCPGtFJqzxhd0juDBsNVw0SeOuWvJYoNQVbyvrxsOF96b8uhLnjhLWVK33o85XYK7dDYRDaiaOYZJcx1KUryu2IaCwpMU9UFER4NfqM6MFB7/Z9rzGT702iVl5piTEwp6LII+43RLM1PcKkP3ZwutxTNNmvf2skDb/2mHzKxsvp9Fng6ugqOJV/uG5/hH/56Sm2oP8NL1tyVoZE18NfvAAo24MxVZpFHpMBnG+Ef/npKbag/w0vW3JWhkTX/Dr/lkvVVpBvct6t7m5lDDOV2Cu3Q2EQ2omjmGSXMdSkdyKqvO7YPpORQM37pjyhRdYS57fidUNQZYx6mYmT/l7UP1PlPEy4nHFW2LwPry2jcQ25/dVK97tHteQYehwKDY9ShtY7P6buthgUDRGOU+1t9JEjGjvf0lUOyNaysJB3moqeYDHHOukuirOSWejnOsZFUH1cutOUqAYTtQDplY6QKkLq5mcsXdKauXOq06jzldgrt0NhENqJo5hklzHUme2o5IGONWFGDTCriJaRrj6nbjcom28it2N+unQtbp1iWHsOWzqqCEZIULNrMg0JyUA5sT7q+st3W6FIh7Dy2c7SpSqwUKnN/0lZ1mO648FxNGClCAQx4iAQ6EPkIUWA6ZAChQdaPytGBTYR/BPb8wCsvQICk3ZXbR3i8d0Qse5sxvOyegiyw7yme5xTu7x7/yrV1rraQRYOVIvbCu6fI/k9bT41GaorLB8sMhnzcBc</encryptedRequestData></requestDetails></webServiceRequest></Request>


Выход
Мне нужен приведенный выше xml, как показано ниже:
<?xml version="1.0" encoding="utf-16"?>
<webServiceRequest><entityDetails><entityId>038</entityId><userName>P049563445634674574325323674we5476956789057905694565745764256456</userName><password>6919301721649254400252100878956720265267481307739303873300957305</password><serviceId>WS001</serviceId><requesterWsiRef>WSI835180322000000</requesterWsiRef><RSASignature>TJQ4BQi3rWA5Xn77t6kkgQQSYafFK8Oe5CsPJGXoyDgp2n78lQ2yDMPWdT7rr4n3oPGUlJ6LMGX1v8sczXPysu/BVNGpGAs0LjJoAiRt4H0PbJodSLkKZRpoUuVkQG/QhAg3LXgulk3ID78CiO3dshCtfu0razVu+cZp6Tq8R8o=</RSASignature></entityDetails><requestDetails><encrypyedRequestKeyData>EV/VkI8uZMd5e+mOwbwb4Ha55rm9fAn6cT+74ocf2eimhoppLP2ylyDKo8SFOCgmHanV7eBEmFgaESU7s/BzewcRsRmnCtG5m/EC3pFFhNcoDwBIgOlCiQSl8Q+mTbXI1OvomTNIAfK5uyIczjsekUWiP8DHphPvgJTC/0La9Pc=</encrypyedRequestKeyData><encryptedRequestData>QGs0t0m1oEKAAAVOV+y+1cJqFMbRj52QOziDHbBCJjgovbdy8CK2apW0Elokd08+CnEgKrUCGm1ZjXojaq1GSRAr/Gkyp6mq7qbsXnQJmJwpAckCiKcTPKXuB+IGWzrDMT1dllQFnmoi2Q9UOQthTtHWmgm38jlzZfKJVR1GwZapNtxJec8z6Wt1lEdfpnz/MkGjTGyoMX7Ov6RDQJOlkloWqn57QeJW5xKYJiBNt1P5qn7BxPx0UfA3OZ4eHgx131cGmFUpeoiJ6p5qdNMt8CsbL6fRZ4OroKjiVf7huf7Aij+RrpBsEGwePtwKkt2ODZHJZTpt0tB0qHRD4TyK9bW30kSMaO9/SVQ7I1rKwkGWZ2YjANkAwS9fEU82QrOxZ+P5fPyLQiYU0ilXc8amwCUA5sT7q+st3W6FIh7Dy2cSRPi6uB030sQeH3Twg/x3S8NjR7L23DfddfBEUwBmPiI5N4glFSCxyr0UWNrtjyURaNhPn+znuHoyrMe6xMUD0yvTruCpUGOwo0dXRsdQDsomHsq9npwQV3AWfcyOG8UlAObE+6vrLd1uhSIew8tnWMMpYL0pdzhNHZgwK58KhdGeX4mosh+shtZy4N5OwlxQ8qJVum7wD+q3mTl7XKnnMfil0UXkGs3HsSKJuXY97oInn9XkSyFA9bJcIPOJcdVdg6/t5Ovlp4d1AVAOv3E3JQDmxPur6y3dboUiHsPLZ/yPd4MwoWqjwguiWKrFzbYXRt/PCuEKUs2GvKENir4Ai5Ks4UORnZESjxN80jZeiqbx+/6XuKmveblQYd90/kElAObE+6vrLd1uhSIew8tnntxijX5Felk9zjXZIGXMDlIqni7OnrrfmvG6rBFr2XAzMQ3dOs8xc6M6TQQ7PT8y7YpUp5MvawbOr434Yjsd1TppAdI1AE7RMdP2jc/87x/78UANzosw/6ziYyuWl3gkZacbD6QyZYB8EG+erHlwqKRRIOS/Bfsr1tOfj4HoX8ON4CbO4b08YviPtKjZz8oMXDgVgpCfEJ8nGU+CEMXYLc5XYK7dDYRDaiaOYZJcx1Llxj8mN+BPLFyiExtzt17pNcbowObgyWxfCxNi4WsnV9nKZOdCPGtFJqzxhd0juDBsNVw0SeOuWvJYoNQVbyvrxsOF96b8uhLnjhLWVK33o85XYK7dDYRDaiaOYZJcx1KUryu2IaCwpMU9UFER4NfqM6MFB7/Z9rzGT702iVl5piTEwp6LII+43RLM1PcKkP3ZwutxTNNmvf2skDb/2mHzKxsvp9Fng6ugqOJV/uG5/hH/56Sm2oP8NL1tyVoZE18NfvAAo24MxVZpFHpMBnG+Ef/npKbag/w0vW3JWhkTX/Dr/lkvVVpBvct6t7m5lDDOV2Cu3Q2EQ2omjmGSXMdSkdyKqvO7YPpORQM37pjyhRdYS57fidUNQZYx6mYmT/l7UP1PlPEy4nHFW2LwPry2jcQ25/dVK97tHteQYehwKDY9ShtY7P6buthgUDRGOU+1t9JEjGjvf0lUOyNaysJB3moqeYDHHOukuirOSWejnOsZFUH1cutOUqAYTtQDplY6QKkLq5mcsXdKauXOq06jzldgrt0NhENqJo5hklzHUme2o5IGONWFGDTCriJaRrj6nbjcom28it2N+unQtbp1iWHsOWzqqCEZIULNrMg0JyUA5sT7q+st3W6FIh7Dy2c7SpSqwUKnN/0lZ1mO648FxNGClCAQx4iAQ6EPkIUWA6ZAChQdaPytGBTYR/BPb8wCsvQICk3ZXbR3i8d0Qse5sxvOyegiyw7yme5xTu7x7/yrV1rraQRYOVIvbCu6fI/k9bT41GaorLB8sMhnzcBc</encryptedRequestData></requestDetails></webServiceRequest>


Что я уже пробовал:

Попробовал ниже код как показано ниже:
XDocument doc = XDocument.Parse(objCBAPIDetails.RequestAPI);
XNamespace ns = "x-schema:tsSchema.xml";
doc.Root.Element(ns + "Request")
    .Elements(ns + "expansion").Remove();

Но не работает.

Richard Deeming

В вашем примере XML не определены никакие пространства имен. В пространстве имен нет элемента под названием "запрос". x-schema:tsSchema.xml".

Кроме того, в этом пространстве имен или в любом другом нет элемента, называемого "расширением".

Элемент "запрос" является корневым элементом. У него нет дочернего узла под названием "запрос".

И код, который вы пробовали, не соответствует тому, что вы сказали, что пытаетесь сделать. Вы пытаетесь продвинуть единственный дочерний элемент корневого элемента в качестве нового корневого элемента; но ваш код пытается удалить дочерний элемент из элемента "запрос".

1 Ответов

Рейтинг:
2

Richard Deeming

Основываясь на вашем описании, код, который вы ищете, просто:

XDocument doc = XDocument.Parse(objCBAPIDetails.RequestAPI);
doc.ReplaceNodes(doc.Root.Elements().Single());


ranio

Как обновить существующий xml-файл с помощью xdoc. Я имею в виду objCBAPIDetails.requestAPI

Richard Deeming

objCBAPIDetails.requestAPI = doc.ToString();