问题描述
在套接字中,我得到了XML主体的缓冲区。解析 XML 时,如果标记值仅包含一个字符,则不会出现问题。但是,如果标签值包含任何特殊字符,就我而言,它在标签值中间有“&”。解析之后,我只能在未解析“&”之后的“&”剩余字符串之前获取标记值。
示例: <name>mad&max</name> after parsing name="mad".**
在代码中,我检查了起始指针是否保存"mad&max</name>"
和结束指针是否保存"&max</name>"
。因此,它得到的字符串长度为3。名称就是strncpy()。
不过,我进入了代码,在该代码中,结束指针获取了该地址"&max</name>"
。在那里,我看到它进入了属于该公司库 “泰国开源软件中心有限公司” 的功能,该库是XML的开源程序。是否有人工作或了解此XML解析库。请帮我解决这个问题。
解决方法
将&
用于&
。
“&”号(&
)只能作为实体引用出现在XML内容中。
许多用于解析XML的API允许解析器将文本节点的内容报告为片段序列-这是为了提高效率而设计的。您必须准备在应用程序中组装片段。许多解析器选择在实体边界处拆分文本,因为这样可以减少在将文本传递给应用程序之前需要在内存中进行的数据改组。