0

附上两个屏幕截图和我的代码。我正在尝试将 animation_sequence 作为结束和结束括号,我已尽力而为,但现在我寻求您的帮助。这是我的尝试,我决定这样做,但现在我的状态,如“Yahoo”中显示为“Yahoo”,我知道它可能与动画序列的 setTextContent (虽然我不明白怎么能在我的状态内容中添加空格.我的问题是我想要的只是我的动画序列有右括号和结尾括号.我通过在 if 语句中寻找两个额外的空格来解决,但我觉得这是一种可悲的方法,而且它有点像接受失败。我附加的第二个图像是我希望实现的,而不是在我的状态中添加额外的“”。如果没有我下面的代码(具体的设置文本内容部分),它会生成图像。就在我以为我解决了它时,这两个空间正在杀死我。如果您需要任何额外的代码,请告诉我。我需要你的帮助。

Element animationState = testDoc.createElement("animation_state");
        Element sequence = testDoc.createElement("animation_sequence");
        sequence.setTextContent(" ");
        sequence.appendChild(testDoc.createTextNode(" "));
testDoc.getElementsByTagName("animations_list").item(0).appendChild(animationState).appendChild(state);
        testDoc.getElementsByTagName("animation_state").item(testDoc.getElementsByTagName("state").getLength() - 1).appendChild(sequence);


   for(int i = 0; i<testDoc.getElementsByTagName("animation_state").getLength(); i++)
   {
       if(  testDoc.getElementsByTagName("animation_state").item(i).getTextContent().
            equals(Poseur.getPoseur().getAnimatedSpriteViewer().getSpriteStateComboBox().
            getSelectedItem().toString())||(testDoc.getElementsByTagName("animation_state").item(i).getTextContent()).equals(Poseur.getPoseur().getAnimatedSpriteViewer().getSpriteStateComboBox().getSelectedItem().toString()+"  "))
       {
           testDoc.getElementsByTagName("animation_sequence").item(i).appendChild(poseImage);
       }
   }

不好 好的

4

1 回答 1

1

在您创建animation_sequence节点时,在 Java 中它出现,您正在使用抽象树结构。此时,没有打开或关闭标签之类的东西,只有节点。

“标签”(打开和关闭)的存在完全是 XML 文档序列化的一个方面,即如何将其转换为文本形式以供输出。就标准而言,序列化<animation_sequence/>与 没有区别<animation_sequence></animation_sequence>,因此允许序列化程序编写任何一个。

一些/序列化程序将允许您以简写形式(尾随)或作为开始/结束标记对指定您希望如何写出空节点。您将需要研究您的特定 XML 库并确定序列化程序是否提供这样的选项。

于 2012-12-02T03:57:48.650 回答