CDATA
来源:互联网 发布:serato dj mac 编辑:程序博客网 时间:2024/05/22 03:45
tinyxml是一个小型而功能强健的开源XML处理库。但是在对<![CDATA[ ]]>的数据通过函数GetText()进行读取的时候,总是只能回取到第一个<![CDATA[ ]]>数据里的内容,查看源码,发现解析是没有任何问题的,tinyxml只是把它接下来的<![CDATA[ ]]>数据放到了另外一个节点进行了保存。我们可以修改GetText()来获取全部的数据,这样上层调用的时候就不要对<![CDATA[ ]]>数据进行另类处理了。
源码下载(http://www.grinninglizard.com/tinyxml/index.html)
修改前:(tinyxml.cpp)
const char* TiXmlElement::GetText() const
{
const TiXmlNode* child = this->FirstChild();
if ( child ) {
const TiXmlText* childText = child->ToText();
if ( childText ) {
return childText->Value();
}
}
return 0;
}
修改后:
const char* TiXmlElement::GetText() const
{
TiXmlString *strCdata = (TiXmlString *)&m_strCdata;
strCdata->clear();
const TiXmlNode* child = this->FirstChild();
if ( child ) {
const TiXmlText* childText = child->ToText();
if (childText->cdata)
{
while (child)
{
strCdata->append(child->Value(),child->value.length());
child = child->next;
}
return m_strCdata.c_str();
}
else
{
if ( childText ) {
return childText->Value();
}
}
}
return 0;
}
源码下载(http://www.grinninglizard.com/tinyxml/index.html)
修改前:(tinyxml.cpp)
const char* TiXmlElement::GetText() const
{
const TiXmlNode* child = this->FirstChild();
if ( child ) {
const TiXmlText* childText = child->ToText();
if ( childText ) {
return childText->Value();
}
}
return 0;
}
修改后:
const char* TiXmlElement::GetText() const
{
TiXmlString *strCdata = (TiXmlString *)&m_strCdata;
strCdata->clear();
const TiXmlNode* child = this->FirstChild();
if ( child ) {
const TiXmlText* childText = child->ToText();
if (childText->cdata)
{
while (child)
{
strCdata->append(child->Value(),child->value.length());
child = child->next;
}
return m_strCdata.c_str();
}
else
{
if ( childText ) {
return childText->Value();
}
}
}
return 0;
}
- CDATA
- CDATA
- CDATA---
- CDATA
- CDATA
- CDATA
- CDATA
- CDATA
- CDATA
- CDATA
- CDATA
- CDATA
- CDATA
- <![CDATA]>
- CDATA
- <![CDATA[ ]]>
- <![CDATA[ ]]>
- <![CDATA[ ]]>
- tinxml解析CDATA字段
- Java 7的并行支持:Fork/Join
- JDK 7 M5包含了并发性和性能更新,但功能并不完整
- java 与sql
- 俩位数乘法拆分
- CDATA
- 解析JDK 7的动态类型语言支持
- 俩位数乘法
- 搭建CentOS 6网络安装源时/repodata目录下文件名后缀丢失问题及解决方法
- 使用logcat命令
- hdu1394 Minimum Inversion Number
- 生成会动的圆
- 关于glassfish
- 素数的和