• Post Reply Bookmark Topic Watch Topic
  • New Topic

Merging XML documents with DOM  RSS feed

Rikko Verrijzer
Ranch Hand
Posts: 34
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

I'm trying to modify a XML file with DOM. Basically what needs to be done is to translate all math inside a XML file from latex to mathML. Finding the math and translating it is to mathML no problem.

However the translation proces creates a new DOM XML tree. The problem I have is the integration of this new DOM tree into the old DOM tree.

I understood that the following lines of code should take care of this merging problem:

However this results in an error message like:
Exception in thread "main" org.apache.crimson.tree.DomEx: NOT_SUPPORTED_ERR: This DOM implementation does not support that node type.
at org.apache.crimson.tree.XmlDocument.importNode(XmlDocument.java:1259)
at translate.MathTransformation.process(MathTransformation.java:144)

Now apparently I'm not allowed to inserted complete documents into another document, but any child node I try add instead of the root node generates to following error:

Exception in thread "main" org.apache.crimson.tree.DomEx: WRONG_DOCUMENT_ERR: That node doesn't belong in this document.
at org.apache.crimson.tree.ParentNode.checkDocument(ParentNode.java:250)
at org.apache.crimson.tree.ParentNode.appendChild(ParentNode.java:333)
at translate.MathTransformation.process(MathTransformation.java:146)

I'm relatively new to DOM so this might be easy to solve.

William Brogden
Author and all-around good cowpoke
Posts: 13078
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The first thing that occurs to me is a namespace conflict. If the node you want to import is in the MathML namespace but the original DOM does not know about the namespace you would get a conflict. (Just guessing - have not tried this.)
It may be that you will have to write a new document that knows all the namespaces involved.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!