Описание проблемы: Прочитайте XML-файл, перейдя к определенному узлу (элементу), если он не имеет определенного объявления пространства имен, добавьте объявление требуемого пространства имен , и выпишите файл.MSXML DOM: Добавить объявление пространства имен в существующий узел в дереве
Мне нужно сделать это на C++ с использованием Microsoft MSXML DOM API. Свойство namespaceURI на COMML-объекте IXMLDOMNode доступно только для чтения в соответствии с этим msdn reference. Оцените любые обходные пути.
Edit: Я потратил некоторое время на обходном пути: создать новый узел родственного в том же документе, с пространством имен мне нужно, а затем переместить все дочерние элементы исходного узла к этому новому узлу, затем удалите исходный узел. Ну, это не работает, потому что дочерние узлы будут хранить все пространство имен по умолчанию, которое у них было раньше.
И вот эта простая идея ударила меня, и это работает, но я не уверен, что это укусит меня в будущем: просто создайте атрибут «xmlns» для элемента, придав ему желаемое значение пространства имен! Любые комментарии?
Вы хотите добавить пространство имен по умолчанию к элементу, который должен был быть назначен? например XMLNS = "someuri" – AnthonyWJones