Я хотел бы удалить все атрибуты из моей структуры XML. Мой выбор - это регулярное выражение, но если есть более простой способ, я широко открыт для предложений.Как очистить XML-атрибуты с помощью regex?
Чтобы выбрать один, исправить тег, я использовал следующее.
String clean = Regex.Replace(filled, ".*?<holder[^>]*?>(.*?)</holder>.*?", "$1");
Это дает мне содержимое держателя бирки. Я бы хотел, чтобы текст сохранялся, но опускал все атрибуты во внутренних тегах. Я пробовал следующий подход.
String plain1 = Regex.Replace(clean, "(<[^>]*?>)(.*?)(</[^>]*?>)", "$1$2$3");
String plain2 = Regex.Replace(clean, "(<[a-zA-Z]*?)([^>]*?)(>)", "$1$3");
Но это дает мне точно такой же вещи обратно (plain1) и просто пустые теги, без оригинальных имен (plain2). Ничто не убирается, или все. Что я делаю неправильно?
Я заметил, что изменение начала для плюса дает мне теги, которые содержат только первую букву имен, поэтому я уверен, что следующий путь - это правильный путь, пока я могу сделать выбранный up для $ 1 максимально большой. Как мне это сделать?
String plain3 = Regex.Replace(clean, "(<[a-zA-Z]+?)([^>]*?)(>)", "$1$3");
Пожалуйста, не используйте Regex для чего-либо связанного XML. Есть много лучших решений. –
Упомяните о трех из них в порядке убывания популярности и уместности? – 2013-03-23 23:00:39
Этот вопрос уже исчерпывающе рассмотрен на этом сайте и других. Быстрый поиск приведет вас ко всему, что вам может понадобиться знать. –