我有一个XML文档,其中使用xmldoc.find("main_node")
检索此特定节点:
<main_node>
<rule_node>
<rule_name>Default_rule</rule_name>
</rule_node>
</main_node>
我正在尝试克隆<rule_node>
节点,更改其中的<rule_name>
节点值,然后将其附加到<main_node>
节点,但我总是更改所有{{1}节点值。
我在变量名<rule_name>
中存储默认的<rule_node>
节点,然后像这样执行克隆和值更改:
rule_xml
导致此XML不正确:
for (i=0; i < 3; i++) {
$(rule_xml).clone().appendTo(sld.find("main_node")).find("rule_name").text("Rule_no" + (i+1))
}
我尝试使用这样的children()函数,但它不起作用:
<main_node>
<rule_node>
<rule_name>Rule_no2</rule_name>
</rule_node>
<rule_node>
<rule_name>Rule_no2</rule_name>
</rule_node>
<rule_node>
<rule_name>Rule_no2</rule_name>
</rule_node>
<rule_node>
<rule_name>Rule_no2</rule_name>
</rule_node>
</main_node>
如何更改克隆节点的$(rule_xml).clone().children().find("rule_name").text("new_text_here")
.appendTo(sld.find("main_node"))
节点文本?
答案 0 :(得分:1)
根据您给出的结果,您的当前代码似乎在每次迭代时更新每个rule_name元素。然而,它们都被编号为2有点奇怪 - 我希望它们都被编号为3(最后一次迭代为2,规则编号为i + 1)。我刚刚测试了您的代码,我无法复制该问题。
也许试试这段代码,看看它是否适合你:
for (i=0; i < 3; i++) {
//Clone the node
var newNode = $(rule_xml).clone();
//Update that individual node
newNode.find("rule_name").text("Rule_no" + (i+1));
//Now append that node
newNode.appendTo(sld.find("main_node"))
}