0

これらの要素を含むXELEMENTがあります

<customer>
    <ns8:title xmlns:ns8="http://ws.xxx.com/xxx/model/common">B< /ns8:title>
    <ns9:firstname xmlns:ns9="http://ws.xxx.com/xxx/model/common">Bob< /ns9:firstname>
    <ns10:lastname xmlns:ns10="http://ws.xxx.com/xxx/model/common">Petier< /ns10:lastname>
    <ns11:bday xmlns:ns11="http://ws.xxx.com/xxx/model/common">19310227< /ns11:bday>
    <ns12:rank xmlns:ns12="http://ws.xxx.com/xxx/model/common">1< /ns12:rank>
</customer>

このようにプレフィックスを変換したいと思います。

<customer>
    <ns1:title xmlns:ns1="http://ws.xxx.com/xxx/model/common">B< /ns1:title>
    <ns2:firstname xmlns:ns2="http://ws.xxx.com/xxx/model/common">Bob< /ns2:firstname>
    <ns3:lastname xmlns:ns3="http://ws.xxx.com/xxx/model/common">Petier< /ns3:lastname>
    <ns4:bday xmlns:ns4="http://ws.xxx.com/xxx/model/common">19310227< /ns4:bday>
    <ns5:rank xmlns:ns5="http://ws.xxx.com/xxx/model/common">1< /ns5:rank>
< /customer>

属性を削除しようとしましたが、うまくいきませんでした。

何か案が?

4

1 に答える 1

1

既存の名前空間定義属性(存在する場合)を削除し、新しい属性を追加する必要があります。

element.Add(new XAttribute(XNamespace.Xmlns + "ns1", "http://ws.xxx.com/xxx/model/common"));

明示的な名前空間属性を追加することにより、XElementがそれをシリアル化に使用するように強制します。

于 2012-11-06T16:21:05.753 に答える