我目前正在处理一些XML.
我有节点,如下所示:
<node>This is a string</node>
Run Code Online (Sandbox Code Playgroud)
我传递给节点的一些字符串将包含&,#,$等字符.
<node>This is a string & so is this</node>
Run Code Online (Sandbox Code Playgroud)
这是因为&
我无法将这些字符串包装在CDATA中,因为它们需要保持原样.我试过在线查找一些字符列表,这些字符无法放入XML节点而不是CDATA.
任何人都可以指向一个方向或向我提供非法字符列表吗?
我使用PHP库生成XML,如下所示:
$dom = new DOMDocument("1.0","utf-8");
Run Code Online (Sandbox Code Playgroud)
执行上述操作会在页面中显示输出顶部的消息.
此页面包含以下错误:第274行第274505行的错误:PCDATA无效字符值27下面是第一个错误之前的页面呈现.
我尝试使用Tidy库进行纠正..使用iconv来获取UTF-8中的中文字符.
我正在尝试使用PHP解析XML文件,但是我收到一条错误消息:
解析器错误:字符0x0超出允许范围
我认为这是因为XML的内容,我认为有一个特殊符号"☆",任何想法我能做些什么来解决它?
我也得到:
解析器错误:标记项行中数据的过早结束
可能导致该错误的原因是什么?
我正在使用simplexml_load_file.
我尝试找到错误行并将其内容粘贴为单个xml文件,它可以工作!所以我仍然无法弄清楚是什么让xml文件解析失败.PS它是一个超过100M的巨大xml文件,它会解析错误吗?
目前,我正在开发一项功能,涉及解析从另一个产品收到的XML.我决定对一些实际的客户数据进行一些测试,看起来其他产品允许来自用户的输入被认为是无效的.无论如何,我仍然需要尝试找出解析它的方法.我们正在使用javax.xml.parsers.DocumentBuilder,我收到的输入错误如下所示.
<xml>
...
<description>Example:Description:<THIS-IS-PART-OF-DESCRIPTION></description>
...
</xml>
Run Code Online (Sandbox Code Playgroud)
正如您所知,描述中的内容似乎是无效的标记(<THIS-IS-PART-OF-DESCRIPTION>).现在,已知此描述标记是叶标记,并且不应在其中包含任何嵌套标记.无论如何,这仍然是一个问题,并产生例外DocumentBuilder.parse(...)
我知道这是无效的XML,但它可以预测无效.有关解析此类输入的方法的任何想法?