小编use*_*502的帖子

如何使用XML Java DOM重新排序节点

这就是我所拥有的

<animation_state>
<state>run</state>
<animation_sequence>
<pose duration="10" image_id="1"/>
<pose duration="10" image_id="2"/>
<pose duration="10" image_id="3"/>
</animation_sequence>
Run Code Online (Sandbox Code Playgroud)

我想让用户能够上下移动某个图像,因为它们存储在XML中,这意味着我必须改变图像ID。如果假设用户希望image_id = 3,使其成为序列中的第一个,或者位于中间,或者视其需要而定的位置,我该如何操作XML?我正在使用DOM。

如果用户想要第一个图像3,这就是我的XML的显示方式:

<animation_state>
<state>run</state>
<animation_sequence>
<pose duration="10" image_id="3"/>
<pose duration="10" image_id="1"/>
<pose duration="10" image_id="2"/>
</animation_sequence>
Run Code Online (Sandbox Code Playgroud)

我的尝试:

Document dom = parser.getDocument();
for (int i = 0; i < dom.getElementsByTagName("animation_state").getLength(); i++) 
{
    if (dom.getElementsByTagName("animation_state").item(i).getChildNodes().item(0).getTextContent().equalsIgnoreCase(target)) {
        posVal = i;
    }
}
NodeList list = dom.getElementsByTagName("animation_sequence").item(posVal).getChildNodes();

for(int b=0; b<list.getLength(); b++)
{
    if(list.item(b).getAttributes().item(1).getNodeValue().equalsIgnoreCase(PoseSelectionListener.imageIDOfSelectedPose))
    {
        Node toBeMoved = list.item(b);
        dom.getElementsByTagName("animation_sequence").item(posVal).appendChild(toBeMoved);
        System.out.println(toBeMoved.getAttributes().item(0).getNodeName());
    }
}
Run Code Online (Sandbox Code Playgroud)

java xml

5
推荐指数
2
解决办法
4391
查看次数

如何访问 C 变量以进行内联汇编操作?

鉴于此代码:

#include <stdio.h>

int main(int argc, char **argv)
{
    int x = 1;
    printf("Hello x = %d\n", x);
}
Run Code Online (Sandbox Code Playgroud)

我想在内联汇编中访问和操作变量 x 。理想情况下,我想使用内联汇编更改其值。GNU 汇编器,并使用 AT&T 语法。

c assembly gcc inline-assembly

5
推荐指数
1
解决办法
4913
查看次数

将字符数组编入const char*

我有一个字符数组char输入[200];

截至现在的输入有字符串"abc.txt".

我有一个严格需要const char*的方法,如何将我的输入数组转换为const char*.

我尝试了它,然后传递它,但是在使用GDB时,我觉得因为输入中剩下的192个插槽充满了垃圾(或者是空的),所以它不被函数接受.当我将字符串文字"a.txt"传递给它起作用的函数时.所以在这一点上我想从输入数组中提取填充的元素并将其转换为const char*.

我将输入作为用户的文件名,因此我使用char数组来存储输入.

   int main()
    {
    char *name;

    char input[1024];
    strcpy(input, argv[1]);

    name = input;

    sys_open(input, "O_RDWR", 00700);


    }
Run Code Online (Sandbox Code Playgroud)

c pointers const

5
推荐指数
1
解决办法
1万
查看次数

通过内联汇编操作c变量

可能重复:
如何访问c变量以进行内联汇编操作

鉴于此代码:

#include <stdio.h>

int main(int argc, char **argv)
{
  int x = 1;
  printf("Hello x = %d\n", x);


  }
Run Code Online (Sandbox Code Playgroud)

我想在内联汇编中访问和操作变量x.理想情况下,我想使用内联汇编更改其值.GNU汇编程序,并使用AT&T语法.假设我想将x的值更改为11,就在printf语句之后,我将如何进行此操作?

c assembly inline-assembly

4
推荐指数
1
解决办法
6559
查看次数

标签 统计

c ×3

assembly ×2

inline-assembly ×2

const ×1

gcc ×1

java ×1

pointers ×1

xml ×1