У меня есть файл XML, который загружается в объект XmlDocument в моем коде. Он содержит несколько узлов с самозакрывающимися тегами. Как получить доступ и изменить текст, содержащийся в них? т.е. Я могу получить доступ к тексту несамозакрывающихся тегов, используя node.InnerText (<tag>value</tag>), но это не работает для самозакрывающихся тегов (<tag valueName = value/>).
Тем не менее, "не работает" слишком расплывчато. Пожалуйста, опубликуйте свой код и укажите, что в нем не так, как вы ожидали. Определите свои ожидания и покажите, что происходит вместо этого.
Возможно, вы хотите изменить значение атрибута valueName = value, а не node.text.
Возможно, мне лучше добавить в конец xml, а не добавлять в середину. Правильно сформированный файл XML имеет один корневой элемент. У вас может быть массив элементов в корне. Часто массивы используются, когда xml используется в качестве файла журнала, поэтому вы можете добавлять в конец, а не открывать и редактировать в середине.
@madreflection Не работает означает, что ничего не возвращает. Теперь я вижу. Это объясняется отсутствием внутреннего текста, а только значениями атрибутов.





Будучи новичком в C#, я не знал о свойстве node.Attributes. Я могу просто получить доступ к valName, используя:
string valName = node.Attributes["valName"].Value;
Это назначит val для valName.
Понятия «самозакрытие» в
XmlDocumentне существует. В форме разметки это просто более короткий способ представления «у этого узла нет внутреннего текста». В DOM разметки не существует, а внутренний текст — это внутренний текст.