7

この xml ドキュメントがあり、'/employees/' で始まる属性でノードを選択したいと考えています。

<table>
  <tr>
    <td>
      <a href="/employees/1.html" title="Employee 1">Employee 1</a>
    </td>
    <td>Robert</td>
  </tr>
  <tr>
    <td>
      <a href="/employees/2.html" title="Employee 2">Employee 2</a>
    </td>
    <td>Jennifer</td>
  </tr>
</table>

したがって、C# では、次のようにします。

parentNode.SelectNodes("//table/tr/th/a[@href='/employees/.....']")

これはC#で可能ですか?

ありがとう!

4

4 に答える 4

21

シンプルなstarts-with関数は必要なことを行います:

parentNode.SelectNodes("//table/tr/td/a[starts-with(@href, '/employees/')]")
于 2012-05-29T14:49:39.313 に答える
3

pureLINQを使用すると、このようなことができます

var doc = XDocument.Parse("YOUR_XML_STRING");
var anchors = from e in doc. Descendants("a") where e.Attribute("href").Value.StartsWith("/employee/") select e;

// .Parent.Parent..... の組み合わせを実行することで、任意のノードを選択できるようになりました。

于 2012-05-29T14:49:34.980 に答える
1

それで、このようなものは?

var xml = @"<table>
  <tr>
    <td>
      <a href=""/employees/1.html"" title=""Employee 1"">Employee 1</a>
    </td>
    <td>Robert</td>
  </tr>
  <tr>
    <td>
      <a href=""/employees/2.html"" title=""Employee 2"">Employee 2</a>
    </td>
    <td>Jennifer</td>
  </tr>
</table>";
var doc = new XmlDocument();
doc.LoadXml(xml);

var employees = doc.SelectNodes("/table/tr/td/a[starts-with(@href, '/employees/')]");
DoWhatever(employees);
于 2012-05-29T14:50:26.390 に答える
0

もちろん、XML をXDocumentインスタンスにロードし、 XPathSelectElementsメソッドを使用して式を使用して検索できます。

于 2012-05-29T14:46:57.710 に答える