将XML文档转换为字典

时间:2013-05-02 10:13:59

标签: xml c++-cli

在.NET 4.0(VS2010)中使用C ++ / Cli,我想将XML文档转换为字典。该文件如下:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Created 26-04-2013 09:05 -->
<DEVICE_CONFIG>
    <ALL
        username="bob"
        features="all"
    />
</DEVICE_CONFIG>

我只关心&lt; ALL ... /&gt;中的值,这是一系列对:

  

键= “值”

由于

1 个答案:

答案 0 :(得分:1)

String^ s = 
    "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n" + 
    "<!-- Created 26-04-2013 09:05 -->\r\n" + 
    "<DEVICE_CONFIG>\r\n" + 
    "    <ALL\r\n" + 
    "        username=\"bob\"\r\n" + 
    "        features=\"all\"\r\n" + 
    "    />\r\n" + 
    "</DEVICE_CONFIG>";

XElement^ root = XElement::Parse(s);

// The DEVICE_CONFIG node is boring. Skip to the "ALL" node.
XElement^ allNode = dynamic_cast<XElement^>(root->FirstNode);

Dictionary<String^, String^>^ results = gcnew Dictionary<String^, String^>();
for each(XAttribute^ attribute in allNode->Attributes())
{
    results->Add(attribute->Name->ToString(), attribute->Value);
}

我只是跳到了根的内部元素。您可以通过其他方式找到“ALL”节点:迭代直到找到HasAttributes的XElement,您可以通过name搜索“ALL”等。