2017-03-01 11 views
2

DOMにXMLを追加するときにXML attributeをパスカルケース「LateProcessing」に保つ方法はありますか?以下のコードは、属性LateProcessing="true"を示していますが、XMLがDOMに追加されると、小文字のlateprocessing="true"になります。DOMに追加するときにXML属性が小文字になる

var jObj = { 
 
    "Smart Shoes": { 
 
    "Product": "Smart Shoes", 
 
    "Price": 24.99, 
 
    "Quantity": "1x " 
 
    }, 
 
    "Denim Jeans": { 
 
    "Product": "Denim Jeans", 
 
    "Price": 30, 
 
    "Quantity": "1x " 
 
    } 
 
} 
 
var xmlString = '<xml id="POSCMD" LateProcessing="true"><commands><injectfieldmacro type="field" name="FIELD_CLEAR"/>'; 
 

 
for (var item in jObj) { 
 
    if (jObj.hasOwnProperty(item)) { 
 
    xmlString += '<injectdata type="literal" data="' + jObj[item].Price + '"/>'; // I don't know where you got UPC from 
 
    xmlString += '<injectfieldmacro type="field" name="FIELD_UPC"/>' 
 
    } 
 
} 
 

 
xmlString += '</commands></xml>'; 
 

 
$('body').append(xmlString);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

enter image description here

+1

これは、ブラウザのHTMLレンダラが原因です。ベストプラクティスでは、HTMLはすべて小文字にする必要があるため、文字列はそのままDOMに出力されます。実際のXMLビューアで 'console.log()'を使用してプレーンストリングと見なした方がよい場合、ケーシングは影響を受けません。 –

+0

ええ、console.logやソースコードで表示しても問題ありません。それで周りに道はありませんか? – MrNew

+0

いいえ、HTMLのように扱われるため、XMLをDOMに入れることはできませんが、いくつかの回避策があります:http://stackoverflow.com/questions/349250/how-to-display-xml-in -javascript –

答えて

0

あなたがHTML DOMにXMLを追加しようとしているので、これが起こっています。 HTMLは要素名の大文字小文字を正規化しますが、XMLはそうではありません。なぜあなたがこれをやろうとしているのかはっきりしないので、私があなたがしなければならないことを示唆することはできません。私が言うことは、それが良いことではないということです。

文字列連結によって構文的なXMLを構築し、それを構文解析することも良い方法ではありません。特に、可変文字列に表示される可能性のある特殊文字、例えば&および<および"にエスケープを適用しない場合は、

関連する問題