0

在 .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>

我只关心 <ALL ... /> 中的值,这是一系列对:

键=“值”

谢谢

4

1 回答 1

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”等。

于 2013-05-02T23:26:52.943 回答