0

在 C# 中,我需要访问嵌套在许多其他元素中的元素。我可以通过命名所有元素来编写查询,但这会非常耗时。有没有简单的方法可以做到这一点,或者可能有一些发电机?

例如我有一个xml:

       <div id="list_offers">
    <div class="container">
      <div id="header">
        <div class="row">
          <div class="space-on-sides">
            <div class="sixteen columns relative">
              <div class="logo">
                <a href="/">
                  <img src="/images/design_resp/design/logo_profesia.png" width="113" height="76" alt="PROFESIA.SK - práca, zamestnanie, ponuky práce, brigáda, voľné pracovné miesto" title="PROFESIA.SK - práca, zamestnanie, ponuky práce, brigáda, voľné pracovné miesto" />
                </a>
              </div>
              <div class="right-panel">
                <a class="login-company small red button nice radius right hide-on-phones margin-on-left" title="Vstup pre firmy" href="/login_person.php?action=company_login">Vstup pre firmy</a>
                <a class="login-company small red button nice radius right show-on-phones margin-on-left" href="/login_person.php?action=company_login">Firmy</a>
                <a rel="nofollow" id="login_modal" class="small gray button nice radius right" title="Prihláste sa do konta" href="/login_person.php?action=login">Prihlásiť</a>
                <div class="search">
                  <div class="relative hide-on-phones">
                    <form name="fulltextsearch" id="fulltextsearch" action="/search.php" method="get" onsubmit="if(document.getElementById('search').value=='HÄľadanie') return false; return true;" class="nice" />
                    <input name="which_form" type="hidden" value="simple" />
                    <input name="tab_name" type="hidden" />
                    <input name="search_anywhere" type="text" id="search" placeholder="HÄľadanie" tabindex="1" class="input-text expand" />
                    <input name="submit_search_simple" type="image" src="/images/design_resp/design/blank.png" alt="HÄľadaĹĄ" class="ico search-nosprite" />&lt;/form&gt;
                  </div>
                  <div class="show-on-phones">
                    <a title="HÄľadajte ponuky práce podÄľa rĂ´znych kritĂ©riĂ">
                    </a>
                  </div>
                </div>
                <div class="row-header-favorite">
                  <div class="header-favorite">
                    <a title="Moje vybrané pracovné ponuky" class="ico-shopping-cart-toppanel" rel="nofollow" href="/user_details.php?action=show_my_offers&amp;ref_top_panel=157">0</a>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>

我需要访问:

输入名称="tab_name" 类型="隐藏"

4

2 回答 2

2

您可以使用 Linq 到 xml

var xDoc = XDocument.Load(pathToXmlFile); //XDocument.Parse(xmlstring);

var input = xDoc.Descendants("input")
                .First(i=>(string)i.Attribute("name")=="tab_name"); 

也可以使用 XPath

var input = xDoc.XPathSelectElement("//input[@name='tab_name']");
于 2013-06-07T12:34:44.467 回答
0

如果您需要在服务器端访问该元素,则需要在runat其中添加一个属性(如:)runat="server",以使其成为服务器端控件。然后,我强烈建议将其设置为您的页面的控件,以便您可以像访问任何其他变量一样访问它。你必须给它一个 ID,所以至少你可以通过那个属性来获取它。

但!您的问题似乎与客户端更相关,所以我强烈,非常强烈建议您改用jQuery。在您的站点中获取 jQuery,它变得如此简单:

$("input[name='tab_name']");

或者更好的是,如果你给它一个 ID:

$("#idYouGaveTotheField");
于 2013-06-07T12:23:46.610 回答