Я использую Saxon Processor для преобразования огромного XML-файла (+7000 строк) в XML-файл RSS 2.0.
У меня нет контроля над входными XML-файлами, они загружаются с сервера, и мой XSL-файл должен преобразовывать его в RSS-канал.
Иногда во входном XML-файле есть элемент, содержащий href, например,
<A href="https://www.google.com/maps/preview?q=tehran+iran&ie=UTF-8&hq=&hnear=0x3f8e00491ff3dcd9:0xf0b3697c567024bc,Tehran,+Iran&gl=us&ei=24iMU-jvFNLNsQTwi4DgAQ&ved=0CKsBELYDMBQ&source=newuser-ws">(map)</A>
Однако Saxon Processor не нравится определенная часть этой строки. Вот сообщение об ошибке,
Error on line 837 column 62 of production.xml: SXXP0003: Error reported by XML parser: The reference to entity "ie" must end with the ';' delimiter. org.xml.sax.SAXParseException; systemId: file:/C:/XSLT/Test3/production.xml; lineNumber: 837; columnNumber: 62; The reference to entity "ie" must end with the ';' delimiter.
Судя по ошибке, процессор путает параметр ie в строке URL с элементом XML.
Есть ли что-нибудь, что я мог бы добавить в таблицу стилей RSS 2.0 XSL, чтобы заставить Saxon Processor пропускать такие строки? Мне на самом деле не нужна информация от <A>
,
<A href="https://www.google.com/maps/preview?q=tehran+iran&ie=UTF-8&hq=&hnear=0x3f8e00491ff3dcd9:0xf0b3697c567024bc,Tehran,+Iran&gl=us&ei=24iMU-jvFNLNsQTwi4DgAQ&ved=0CKsBELYDMBQ&source=newuser-ws">(map)</A>
Так что, если бы я мог полностью пропустить такие строки и если бы это устранило ошибку, было бы здорово. В качестве альтернативы, если есть подозрение, что в процессоре Saxon есть ошибка, и другой процессор не вызовет эту проблему, это тоже было бы здорово (и если бы вы могли порекомендовать более подходящий процессор).