如何从XML嵌入XML

时间:2011-04-04 09:27:22

标签: android xml dom xml-parsing

我有一点问题,在向服务器发送请求时我正在使用嵌入式xml的xml。应用程序适用于Android 2.1,因此我不能只使用getTextContent()来获取值,因此我使用Node.getFirstChild().getNodeValue();,对于带有文本的标准节点,它可以正常工作,但对于包含嵌入式xml的节点,它不是“T。有人有任何建议或有同样的问题吗?如何解决它。

BTW:当我检查节点类型时,所有节点都是1,所以它意味着ELEMENT_NODE。

2 个答案:

答案 0 :(得分:0)

您从服务器接收到了什么?喜欢的东西;

<?xml version="1.0"?>
<embedded-xml>
  <?xml version="1.0"?>
  <data/>
</embedded-xml>

或者

<?xml version="1.0"?>
<embedded-xml>
  <data/>
</embedded-xml>

在后一种情况下,你可以简单地检索数据 - 节点(不是值),不需要单独解析它,而第一种情况并不完全有效。

答案 1 :(得分:0)

您无法在XML文档中嵌入任意XML文档,因为XML文档可能包含对于首先嵌入XML所需的CDATA部分非法的序列。

如果任务能够嵌入,然后提取任意XML文档,则必须对XML文档进行编码,然后将其嵌入CDATA部分。原因是CDATA的结束标记是“]]&gt;”如果(任意)嵌入文档包含CDATA部分,则“]]&gt;”该文件的标签CDATA部分将关闭父文件中的CDATA部分。

根据我的经验,在XML中嵌入XML的最佳方法是压缩(因为Base64编码会破坏它......)然后是Base64编码。我采用这种方法的原因是因为它是万无一失的,并且两种变换(某种压缩器和base64 en / de-coding)可以广泛使用。