Преобразование XML-документа к словарю

Необходимо использовать то, что является самым дешевым и известным прежде всего платформой, и прекратить дело. Путаница высокоуровневых языков является тяжелой проблемой, потому что потоки кода операции VM не страдают от двух самых больших проблемных собственных потоков кода операции, сделайте: идентификация функции/метода и искажение регистра.

то, Что необходимо знать об инвертировании байт-кода, - то, что это уже - общепринятая практика для тестеров безопасности, чтобы рассмотреть прямой X86-код и найти уязвимости в нем. В необработанном X86 Вы не можете обязательно даже найти допустимые функции, уже не говоря о дорожке локальная переменная в течение вызова функции. Почти ни при каких обстоятельствах делают инверторы собственного кода имеют доступ к именам функций и именам переменной---, если они не рассматривают код Microsoft, для которого MSFT услужливо предоставляет ту информацию общественности.

"Dotfuscation" работает преимущественно путем скремблирования имен функций и имен переменной. Вероятно, лучше сделать это, чем публикуют код с информацией об уровне отладки, где Отражатель буквально бросает Ваш исходный код. Но что-либо, что Вы делаете вне этого, вероятно, войдет в убывающую доходность.

10
задан Phoexo 10 November 2009 в 19:13
поделиться

4 ответа

Вы можете использовать linq to xml, чтобы делать то, что вы хотите (если я понимаю, что вы хотите)

string data = "<data><test>foo</test><test>foobbbbb</test><bar>123</bar><username>foobar</username></data>";

XDocument doc = XDocument.Parse(data);
Dictionary<string, string> dataDictionary = new Dictionary<string, string>();

foreach (XElement element in doc.Descendants().Where(p => p.HasElements == false)) {
    int keyInt = 0;
    string keyName = element.Name.LocalName;

    while (dataDictionary.ContainsKey(keyName)) {
        keyName = element.Name.LocalName + "_" + keyInt++;
    }

    dataDictionary.Add(keyName, element.Value);
}
15
ответ дан 3 December 2019 в 17:20
поделиться

XML-данные

<?xml version="1.0" encoding="UTF-8"?>
<data>
    <resource key="123">foo</resource>
    <resource key="456">bar</resource>
    <resource key="789">bar</resource>  
</data>

Код преобразования

string s = "<data><resource key=\"123\">foo</resource><resource key=\"456\">bar</resource><resource key=\"789\">bar</resource></data>";
XmlDocument xml = new XmlDocument();
xml.LoadXml(s);
XmlNodeList resources = xml.SelectNodes("data/resource");
SortedDictionary<string,string> dictionary = new SortedDictionary<string,string>();
foreach (XmlNode node in resources){
   dictionary.Add(node.Attributes["key"].Value, node.InnerText);
}

Этот вопрос задавался здесь раньше, поэтому вы можете найти все ответы по этой ссылке:

преобразовать xml в отсортированный словарь

Надеюсь, это поможет.

4
ответ дан 3 December 2019 в 17:20
поделиться

Ваш вопрос действительно не очень ясен, но я думаю, что это делает то, что вы хотите:

XmlDocument doc = new XmlDocument();
doc.LoadXml(@"<xml>
<mengde>100</mengde>
<type>2</type>
<foo>bar</foo>
</xml>");

Dictionary<string, string> d = new Dictionary<string, string>();
foreach (XmlNode n in doc.SelectNodes("/xml/*")
{
   d[n.Name] = n.Value;
}
4
ответ дан 3 December 2019 в 17:20
поделиться

Это не совсем то, что вы ищете, но может представлять интерес: http://blogs.msdn.com/csharpfaq/archive/2009/10/01/ dynamic-in-c-4-0-introduction-the-expandoobject.aspx

0
ответ дан 3 December 2019 в 17:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: