У меня есть какой-то XML с пространством имен ..
<batch xmlns="http://www.mydomain.uk/batch" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="applications.xsd">
<header>
...
</header>
<applications>
<application>
<details>
<Title>MR</Title>
<Forename>Jonathh</Forename>
<Middlenames>
<Middlename>on</Middlename>
<Middlename>ath</Middlename>
</Middlenames>
<PresentSurname>H</PresentSurname>
</details>
</application>
</applications>
</batch>
Мне нужно вытащить приложения, которые я могу сделать, но только указав пространство имен.
var namespaceManager = new XmlNamespaceManager(doc.NameTable);
namespaceManager.AddNamespace("eb", "http://www.mydomain.uk/batch");
var protectedElement = doc.SelectSingleNode("/eb:batch/eb:applications", namespaceManager);
Проблема для меня заключается в том, что пространство имен затем распространяется вниз к выбранному узлу E.G.
<applications xmlns="http://www.mydomain.uk/batch">
<application>
<details>
<Title>MR</Title>
<Forename>Jonathh</Forename>
<Middlenames>
<Middlename>on</Middlename>
<Middlename>ath</Middlename>
</Middlenames>
<PresentSurname>H</PresentSurname>
</details>
</application>
</applications>
Обратите внимание на маленькие хитрые xmlns в теге приложений сейчас ... которых там не было раньше ... Я пробовал все виды вещей, чтобы удалить ..
Я так отчаялся, что вместо этого рассматриваю регулярное выражение (я знаю!) - что, на самом деле, я не думаю, было бы здесь слишком ужасно ...
Кто-нибудь получил какие-либо предложения?