某项任务要求我解析 XML 文件并检查每个节点及其属性。我花了几周时间学习 XML 和 XML 解析。我什至接受了之前发布的与 C 中的 LIBXML 解析相关的问题的帮助,并基于这种理解我编写了下面的代码。但这段代码是有缺陷的,因为我没有实现目标。
我想我搞乱了一些父母、孩子和兄弟姐妹的概念。我从下面提到的 XML 文件中了解到的是:
Profile 是根节点,Catalog 是其子节点,Catalog 的子节点作为参数,Parameter 的子节点作为目标节点,并且所有目录节点彼此互为兄弟节点。
Profile--> Catalog--> Parameter-->Target
|-> Catalog--> Parameter-->Target
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试通过将指针移动到目录子节点指针来从目录转到参数时,我无法进行。由于我无法达到参数,我无法达到目标。
希望纠正我的理解和代码。PS 我的要求是用 C 语言编写代码,所以请不要向我指出其他语言。
/***** MY XML FILE ***************************/
<?xml version="1.0" encoding="UTF-8"?>
<!-- When VIOS level changes, the value of ioslevel needs to change manually -->
<Profile origin="get" version="3.0.0" date="2012-10-05T00:00:00Z">
<Catalog1 id="devParam" version="3.0">
<Parameter1 name="policy" value="single" applyType="boot" reboot="true">
<Target1 class="device" instance="disk1"/>
</Parameter1>
</Catalog1>
<Catalog2 id="devParam" version="3.0">
<Parameter2 name="policy" value="no" applyType="boot">
<Target2 class="device" instance="disk2"/>
</Parameter2> …Run Code Online (Sandbox Code Playgroud) 我正在学习 8086,有一个特别的问题困扰着我,我还没有找到任何令人满意的答案。
我知道 CPU 按顺序执行代码,如果想要更改代码流,我们希望 IP 指向我们感兴趣的代码所在的新/旧地址。
现在,我的问题是为什么我们(我的意思是 CPU)在遇到跳转指令时不只是使用与标签对应的地址来更新 IP?
当我们遇到跳转指令时,需要在IP中添加位移吗?
在我看来
对我来说,这听起来像是更多的工作,然后只需使用与标签对应的地址更新 IP。但是,我确信事情的处理方式一定是有原因的,只是我不知道。
在 8086 中选择这种设计的原因是什么?