我有一个400kb的大文件。
当我尝试使用以下方法加载它时:
我在两种方法中都出现了Undefined错误。 我把文件粘贴到xml验证网页上,它确定了......
我还能做什么?
顺便说一句,元素中的属性是否有最大长度?
似乎无法加载长属性... 我在xml的属性值...
中有另一个xml的一部分An error pops up: Undefined error. Line: 1 (here is the begining of the xml)
Class of the exception is: EDOMParseError
一般来说,我想得到这样的东西:
<doc type="X223">
<params id_param="51" value="XML_1" />
<params id_param="52" value="XML_2" />
<params id_param="53" value="XML_3" />
</doc>
答案 0 :(得分:2)
如果您可以更改架构,请将内部XML文件存储到CDATA section
,如果没有,请尝试考虑以下内容。
Parser对元素属性值的失败很可能是由于您尝试存储的XML文件中包含的引号字符。例如,请考虑以下情况:
<params id_param="51" value="<innerxmlattributevalue="value">"/>
正如您所看到的,您可能会将解析器与该内部XML中的引用char混淆,以便它可以将以上行作为:
<params id_param="51" value="<innerxmlattributevalue="
value">"/> <-- here is expected to be another attribute or closing bracket
当您想要保留当前架构时,最简单的方法是转义内部XML文件的所有引用字符。
从RFC 2629
规范(由我强调):
确保引用所有属性值,例如
"<example name='value'>"
,如果该值包含其中一个引号字符, 然后使用另一个引用该值,例如"<example name='"'>"
, 如果值包含两个引号字符,则使用其中一个引用该值,并替换该字符的出现位置 具有'''
(撇号)或"""
的属性值 (引用),例如"<example name='"'"'>"
。