2016-03-19 3 views
2

У меня XML с большим содержимым с таким количеством узлов, а также некоторые узлы не закрыты. Для удаления этих незакрытых узлов потребовалось гораздо больше времени вручную. Есть ли способ удалить это просто по коду? Для конкретной строки я могу удалить. Но как это сделать для больших XML?Как удалить узел, который не был закрыт в XML?

+0

Когда вы обнаружите открытый тег, который не закрыт, вы предполагаете, что он должен быть самозакрывающимся или иметь потенциально потенциальное тело с дочерними узлами? В последнем случае вы также удаляете узлы, которые, как вы подозревали, были детьми, используя пробелы в качестве подсказки? –

+1

Если узел не закрыт, это не xml. –

+0

Это не ** действительный ** XML. Возможно, это то, чего он пытается достичь. Вы пытаетесь заставить контент быть действительным XML? –

ответ

1

Элемент, который не является самозакрывающимся, должен иметь конечный тег в XML. В противном случае текстовый объект у вас просто не XML. Неважно, насколько маленький или большой текстовый объект, это должно быть well-formed должно считаться XML, а определение правильно сформированного требует, чтобы элементы имели конечный тег или были самозакрывающимися.

Таким образом, вы не можете рассчитывать на поддержку любого подходящего синтаксического анализатора XML или инструмента для добавления отсутствующих конечных тегов или удаления незакрытых начальных тегов. Кроме того, вам не составит труда написать свой собственный инструмент для удаления или восстановления незакрытых элементов, потому что в общем случае невозможно быть уверенным, где должен был закончить элемент.

1

Это зависит от того, что вы подразумеваете под узлами, которые не закрыты. Я вижу несколько проблем:

  • атомных узлов (оканчивающиеся /> вместо того, чтобы начало/конец тегов)
  • узлы, которые имеют такое же имя тега, но различные атрибуты (тогда как вы знаете, какой из них является «не закрыто»? они должны ли быть родителем и ребенком или братьями и сестрами?)

поэтому проблема не столько с XML, но с вашими требованиями. Пример будет хорошим, поэтому я могу быть более конкретным.

+0

Это должен быть комментарий, а не ответ. – kjhughes

+0

Кроме того, ваше утверждение *, поэтому проблема связана не столько с XML, сколько с вашими требованиями *, это неверно. Незакрытые элементы, безусловно, являются проблемой XML, независимо от требований OP. – kjhughes

Смежные вопросы