【问题标题】:Generate XML using Xerces-C++ [closed]使用 Xerces-C++ 生成 XML [关闭]
【发布时间】:2012-07-24 01:10:55
【问题描述】:

我正在尝试使用 xerces 库生成类似于以下内容的 XML。我找不到合适的例子来效仿;哪位有这方面经验的可以指教一下吗?

<ad xsi:noNamespaceSchemaLocation="smaato_ad_v0.9.xsd" modelVersion="0.9">
    <richmediaAd>
        <content>
            <script>yadda...yadda... richmedia content ...yadda</script>
        </content>
        <width>728</width>
        <height>90</height>
        <beacons>
            <beacon>http://mysite.com/beacons/mybeacon1</beacon>
            <beacon>http://mysite.com/beacons/mybeacon2</beacon>
        </beacons>
    </richmediaAd>
 </ad>

【问题讨论】:

  • 您是否有任何代码可以显示您当前所在的位置?
  • 我正在按照codeproject.com/Articles/31088/…这里的示例进行操作,但是我不确定它是否符合我的要求
  • 好的,你有什么要求?示例如何未能满足他们?你有什么问题?请用这些问题的答案编辑您的问题。
  • 要求是生成带有上述约束的xml,包括标签

标签: c++ xerces xerces-c


【解决方案1】:

将 Codeproject 示例代码中的文档创建替换为

p_DOMDocument = p_DOMImplementation->createDocument(0, L"ad", 0);

创建一个以广告元素为根节点的文档。

使用

访问文档中的根元素
DOMElement* pRoot = p_DOMDocument->getDocumentElement();

使用如下调用创建单个元素:

DOMElement* pEle = p_DOMDocument->createElement(L"richmediaAd");
pRoot->appendChild(pEle);

通过调用设置属性

pEle->setAttribute(L"modelVersion", L"0.9");

这样设置文本内容:

DOMText* pText = p_DOMDocument->createTextNode(L"yadda...yadda...");
pEle->appendChild(pText);

希望对你有帮助

【讨论】:

  • 非常感谢帮助:)
  • 最后一个问题,我需要将属性设置为顶级 - 所以 xsi:noNamespaceSchemaLocation="smaato_ad_v0.9.xsd" modelVersion="0.9" 将使用标签广告而不是richmediaad - 是这可能与 xerces?
猜你喜欢
  • 2017-07-11
  • 1970-01-01
  • 2013-03-04
  • 2013-07-22
  • 2011-01-15
  • 2011-08-02
  • 1970-01-01
  • 2020-04-06
  • 2011-03-12
相关资源
最近更新 更多