我有一个读取和解析 XML 的 js 脚本。它从 XMLHttpRequest 请求(与返回 XML 的 php 脚本联系)中获取 XML。该脚本应该在第一个 parentNode 下接收 2 个或更多节点。它需要的 2 个节点具有明确定义的名称,其他节点可以是任何名称。php的输出可能是:
<?xml version='1.0'?>
<things>
<carpet>
<id>1</id>
<name>1</name>
<desc>1.5</desc>
</carpet>
<carpet>
<id>2</id>
<name>2</name>
<height>unknown</height>
</carpet>
</things>
这里所有的地毯都有 7 个节点。
但也可能是:
<?xml version='1.0'?>
<things>
<carpet>
<id>1</id>
<name>1</name>
<desc>1.5</desc>
</carpet>
<carpet><id>2</id><name>2</name><height>unknown</height></carpet>
</things>
这里第一块地毯有 7 个节点,第二块地毯有 3 个节点。我希望我的 javascript 代码以一种快速而干净的方式以完全相同的方式对待两者。如果可能的话,我想删除每个标签之间的所有文本节点。因此,像上面这样的代码将始终被视为:
<?xml version='1.0'?>
<things><carpet><id>1</id><name>1</name><desc>1.5</desc></carpet><carpet><id>2</id><name>2</name><height>unknown</height></carpet></things>
这可能以一种快速有效的方式实现吗?如果可能并且效率更高,我不想使用任何 get 函数(getElementsByTagName()、getElementById、...)。