Как мне получить этот фрагмент XML с использованием .NET - PullRequest
1 голос
/ 19 мая 2009

Я пытаюсь создать этот оператор XML (за исключением форматирования и конкретных значений):

<swatchcolor RGB="c5c5c5">
  <sldcolorswatch:Optical 
    Ambient="0.520000" 
    Transparency="0.000000" 
    Diffuse="0.800000" 
    Specularity="1.000000" 
    Shininess="0.400000" 
    Emission="0.000000" />
</swatchcolor>

Я использую этот кусок кода:

Public Sub ToXml(ByVal writer As XmlWriter)
    writer.WriteStartElement("swatchcolor")
    writer.WriteAttributeString("RGB", _rgb)
    writer.WriteStartElement("sldcolorswatch", "Optical", My.Resources.xmlns)
    writer.WriteAttributeString("Ambient", _ambient.ToString("####################.000000"))
    writer.WriteAttributeString("Transparency", _transparency.ToString("####################.000000"))
    writer.WriteAttributeString("Diffuse", _diffuse.ToString("####################.000000"))
    writer.WriteAttributeString("Specularity", _specularity.ToString("####################.000000"))
    writer.WriteAttributeString("Shininess", _shininess.ToString("####################.000000"))
    writer.WriteAttributeString("Emission", _emission.ToString("####################.000000"))
    writer.WriteEndElement()
    writer.WriteEndElement()
End Sub

К сожалению, я получаю следующий XML с нежелательным предложением xmlns:

<swatchcolor RGB="c5c5c5">
  <sldcolorswatch:Optical 
    Ambient=".520000" 
    Transparency=".000000" 
    Diffuse=".800000" 
    Specularity="1.000000" 
    Shininess=".400000" 
    Emission=".000000" 
    xmlns:sldcolorswatch="http://www.w3.org/2000/xmlns/" />
</swatchcolor>

Как мне избавиться от "xmlns"? Я знаю, что это там, потому что я использую третий параметр WriteStartElement, но когда я использую двухпараметрическую версию, он перемещает слово «Оптический» не на место, например:

<swatchcolor RGB="c5c5c5">
  <sldcolorswatch 
    Ambient=".520000" 
    Transparency=".000000" 
    Diffuse=".800000" 
    Specularity="1.000000" 
    Shininess=".400000" 
    Emission=".000000" 
    xmlns="Optical" />
</swatchcolor>

1 Ответ

1 голос
/ 19 мая 2009

Я думаю, что вы хотите:

writer.WriteStartElement("sldcolorswatch", "Optical", "http://www.solidworks.com/sldcolorswatch");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...