Я читаю XML, используя SAX (javax.xml.parsers.SAXParser;
). В этом XML есть некоторые специальные символы, такие как (&, <,>, ", '), доступные среди значений дочерних узлов. Таким образом, до этого момента SAX успешно читал XML, но в этот момент он выдает org.xml.sax.SAXParseException
.
Например, в приведенном ниже примере XML SAX считывает значение узла успешно. Но он выбрасывает org.xml.sax.SAXParseException
в значение, поскольку значение аргумента Name содержит <</em>.
<Parent>
<child1>
LS-23541723
</child1>
<child2 id="2" Name="T-Shirt And Denim - T<D" Rate="500.00">
</child2>
<child3>
<![CDATA[This is the child 2]]>
</child3>
<child4>
<![CDATA[This is the child 4]]>
</child4>
</Parent>
Я не могу определить узлы, которые содержат эти специальные символы, до того, как они поступят. (Это dyanamic.) Итак, я хочу прочитать XML с SAX, игнорируя узлы, которые содержат эти специальные символы ... Я думаю, что могу сделать это, если возможно прочитать XML с помощью SAX, пропуская узлы, которые передают исключение org.xml.sax.SAXParseException.
Возможно ли это, и если да, то как?
Примечание: я не могу просто заменить их ссылками сущностей, такими как &
, поскольку иногда XML-узлы также соединяются с <
, >
(как <child1>
). Поэтому, прежде чем начать читать его с помощью SAX, я заменяю все ссылки на сущности ссылками на символы. (replaceAll(">",">"
) и т. Д.)