xmlwrite : Attributes are alphabetically sorted

13 ビュー (過去 30 日間)
Vamsinag Gunti
Vamsinag Gunti 2018 年 10 月 30 日
コメント済み: Vamsinag Gunti 2018 年 10 月 30 日
Hi
Does the xmlwrite() function use some sort of a sorting algorithm? When I execute the following code:
entry_node = docNode.createElement('myelement');
entry_node.setAttribute('name', myStruct.name);
entry_node.setAttribute('value', myStruct.value);
entry_node.setAttribute('unit', myStruct.unit);
docNode.getDocumentElement.appendChild(entry_node);
I get an XML file as follows:
<?xml version="1.0" encoding="utf-8"?>
<mySpec>
<myelement name="myName" unit="myUnit" value="myValue"/>
</mySpec>
What I need is:
<?xml version="1.0" encoding="utf-8"?>
<mySpec>
<myelement name="myName" value="myValue" unit="myUnit"/>
</mySpec>
Is there anyway to suppress the sorting algorithm(if any exists)?
Thanks in advance.
Regards, Vamsi

採用された回答

Guillaume
Guillaume 2018 年 10 月 30 日
What I need is ...:
Then what you need is not xml. A compliant xml writer is explicitly allowed to order tags and attributes as it sees fit and a compliant xml reader is explicitly forbidden to rely on the ordering of tags and attributes. If your code relies on the order of the attributes, it does not follow the xml standard and will be broken by many xml writers.
Matlab delegate the xml writing to Java, so it is very likely that all writers based on Java will show the same behaviour.
  1 件のコメント
Vamsinag Gunti
Vamsinag Gunti 2018 年 10 月 30 日
Hi Guillaume,
Thank you for pointing out the error. Turns out that the format I wanted to generate was indeed wrong.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeStructures についてさらに検索

タグ

製品


リリース

R2017b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by