0

xxxxx を実行しようとしていますが、xxxxxxxxx で問題に直面しています。私はすでにインターネットで検索しましたが、解決策が見つかりませんでした.主にxmltextwriterを使用してURLとして名前空間を書きたい.内容は次のようになります.

**<!-- language-all: lang-xml -->

    <?xml version="1.0" encoding="UTF-8"?>
    <book
        xmlns="http://schemas.dmtf.org/ovf/environment/1"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:oe="http://schemas.dmtf.org/ovf/environment/1"
        oe:id="">
    </book>
  **

コードはこちら、

int main()
{
  XmlWriter testWriter;
  testWriter.StartWriting("test.xml");
  testWriter.StartDocument("1.0","UTF-8");

  testWriter.StartElement("book");

  testWriter.StartIndenting();

  testWriter.AddAttributeNS("xmlns", "http://schemas.dmtf.org/ovf/environment/1", "", "http://schemas.dmtf.org/ovf/environment/1");
  testWriter.AddAttributeNS("xmlns", "http://www.w3.org/2001/XMLSchema-instance", "xsi", "http://www.w3.org/2001/XMLSchema-instance");
  testWriter.AddAttributeNS("xmlns", "http://schemas.dmtf.org/ovf/environment/1", "oe", "http://www.w3.org/2001/XMLSchema-instance");
  testWriter.AddAttributeNS("oe", ":", "id", "");

  testWriter.EndElement();
  testWriter.StopWriting();

  std::string buf;
  testWriter.xml_to_string(buf);
  return 0;
}

bool StartElement(const std::string& element_name) {
       return xmlTextWriterStartElement(writer_,
                                     BAD_CAST element_name.c_str()) >= 0;
}

bool XmlWriter::AddAttributeNS(const std::string& name,
                        const std::string& value,
                        const std::string& prefix,
                        const std::string& namespaceURI )
{

      if(namespaceURI != "")
         return xmlTextWriterWriteAttributeNS (writer_,
                                            BAD_CAST prefix.c_str(),
                                            BAD_CAST name.c_str(),
                                            BAD_CAST namespaceURI.c_str(),
                                            BAD_CAST value.c_str()) >= 0;
       else
         return xmlTextWriterWriteAttributeNS (writer_,
                                            BAD_CAST prefix.c_str(),
                                            BAD_CAST name.c_str(),
                                            NULL,
                                            BAD_CAST value.c_str()) >= 0;


}
4

0 に答える 0