【发布时间】:2015-05-05 16:42:09
【问题描述】:
我目前正在使用Knockout 创建一些由第三方工具在旅途中使用的 XML。
比较直接,
var queryString = "";
var query = [
'<Values data-bind="foreach: items, attr: {\'data-bind\': false}">',
'<Value data-bind="text: $data, attr: {\'data-bind\': false}"></Value>',
'</Values>'
];
var queryTemplate = query.join("");
var tmpDiv = document.createElement("div");
tmpDiv.innerHTML = queryTemplate;
ko.applyBindings({
field: field,
items: items
}, tmpDiv);
queryString = tmpDiv.innerHTML;
然而,令我非常沮丧的是,输出节点都是小写的:
<values>
<value>1778</value>
</values>
在一般的网络工作中,上述问题不是问题,但是第三方工具对大小写敏感,因此按照最初指定的格式对节点进行格式化至关重要:
<Values>
<Value>1778</Value>
</Values>
我错过了 Knockout 手册中的内容吗?有没有简单的解决方法?
【问题讨论】:
-
这是一个 jquery 问题,不是淘汰赛:见stackoverflow.com/questions/11719384/…
-
@dperry 我没有使用 jQuery,但感谢您的输入。
-
啊,是的,当然。不过似乎仍然是 html 与 xml 的问题。
-
@dperry 非常感谢,您的 cmets 帮助我走上了正轨。 如果使用jQuery,可以简单地
var tmpDiv = $.parseXML(queryTemplate);然后绑定到tmpDiv.documentElement。我会尽快把它变成香草 Js。如果你想自己做,我很乐意回答你的作为答案。
标签: javascript xml knockout.js