3

JavaScript で大文字と小文字を区別する XML ノードをいくつか作成する必要があります。これらのノードには、属性名の間にコロンが含まれています。

例:<Data ss:Type="String">Contact Name</Data>

関数を使用して JavaScript を介して要素を作成しようとするcreateElement()と、小文字で作成されます。また、コロンを含む属性を追加すると、多くの問題が発生します。例えば:ss:Type="String"

これはExcelデータであり、ソース.xmlファイルを.xlsファイルに保存しています。XML 要素と属性の大文字と小文字は、Excel がファイルを読み取れるようにするために非常に重要です。

例やポインタは非常に役立ちます。

4

3 に答える 3

7

探している JavaScript メソッドはdocument.createElementNSelm.setAttributeNS

var e = document.createElementNS('http://www.microsoft.com/office/excel/', 'Data');
e.setAttributeNS('http://www.microsoft.com/office/excel/', 'ss:Type', 'String');
e.textContent = 'Contact Name';

次に、文字列を取得したい場合は、.innerHTMLもう機能しないため、XMLSerializerを使用する必要があります

var s = new XMLSerializer();
s.serializeToString(e);
于 2012-12-03T12:33:23.500 に答える
1

Paul S.の回答は、私を解決策に導きます。

で必要な XML DOM 要素を作成し、必要createElement()な属性を で追加しましたsetAttribute()。これにより、次の結果が得られました。

<data ss:type="String">Contact Name</data>

この例の要素名と属性名は両方とも小文字であることに注意してください。しかし、私が本当に欲しかったのはPascal ケースでした:

<Data ss:Type="String">Contact Name</Data>

XMLSerializer()Paul S. の提案に従って、最初に XML DOM を文字列に変換した後、 toとtoreplace()のすべての出現箇所を単純に変換しました。<data<Datass:typess:Type

私の質問に対する解決策は XMLSerializer() と String replace() 関数です

于 2012-12-05T08:30:52.743 に答える
1

それは時代遅れの質問ですが、私は答えを出します:要素を作成するために
使用する場合、 (ns = "http://www.w3.org/1999/xhtml"で)使用し、それで作成されたノードはhtml標準に対応しますあなたが経験した制限で。一般的な XML を処理するには、代わりに a を使用する必要があります。window.documentHTMLDocument
Document

// instantiate a new Document  
var xml_doc = document.implementation.createDocument('optional_namespace','rootElement');  

//  then your code to create element  
var e = xml_doc.createElementNS('http://www.microsoft.com/office/excel/', 'Data');  
e.setAttributeNS('http://www.microsoft.com/office/excel/', 'ss:Type', 'String');  
e.textContent = 'Contact Name';  

// probably append it  
xml_doc.documentElement.appendChild(e);  

// serialized xml_doc:  
var s = new XMLSerializer();  
s.serializeToString(xml_doc);  

/*
<rootElement xmlns="optional_namespace">
  <Data xmlns="http://www.microsoft.com/office/excel/" xmlns:ss="http://www.microsoft.com/office/excel/" ss:Type="String">Contact Name</Data>
</rootElement>"
*/

編集:ChromeとFFでテスト済み

于 2016-02-18T16:43:55.020 に答える