我在操作之前将XML String转换为Document。我从第三方API收到XML。
这是我的XML
<Student full/part="part" name="Some Name" dob="2000-08-01" totalMarks="565" science="9" maths="8" registration="987654" class="distinction" />
这是我得到的例外
org.apache.camel.TypeConversionException: Error during type conversion from type: java.lang.String to the required type: org.w3c.dom.Document with value due org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 64; Attribute name "full" associated with an element type "Student" must be followed by the ' = ' character.
现在我没有定义,只是从这个XML中检索属性值。即明天这个元素类型可能是来自学生的老师,但我只是将注册,类甚至“完整/部分”等属性的值放在一起。
我想知道org.w3c.dom.Document在给定元素类型的XML属性名称中容忍这个正斜杠。
答案 0 :(得分:4)
XML name(或XML attribute)的element
[5] Name ::= NameStartChar (NameChar)*
不能包含/
字符:
[4] NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
[4a] NameChar ::= NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]
除此之外没有任何逃避机制。