我有一些旧的J#代码,我正在转向C#
XmlNodeList itemTransferOutNodes =
strXML.GetElementsByTagName("ItemTransferOut");
XmlElement itemInfo =
itemTransferOutNodes.Item(itemTrOutNodesCnt)
.ChildNodes.Item(0)
.get_Item("itemInfo");
我在名为C#
的{{1}}方法的XmlNodeList
API中没有看到。
我应该在get_Item
中更改get_Item
。
谢谢。
答案 0 :(得分:1)
XmlElement itemInfo = itemTransferOutNodes.Item(itemTrOutNodesCnt)
.ChildNodes
.Item(0)["itemInfo"];
答案 1 :(得分:1)
有几种方法,我建议LINQ to XML
如果没有看到你的XML,我想它会是这样的:
strXml.Root
.Decendants("ItemTransferOut")
.First(xele => xele.Name.LocalName == "itemInfo")
答案 2 :(得分:1)
J#不支持像C#这样的属性,所以它们通过使用方法来“伪造”。您可以在that matter on MSDN找到更多信息。如果C#对象具有名为SomeProperty的属性:
public class Dummy {
public string SomeProperty { get; set; }
}
<#>在J#中,你必须调用get_SomeProperty()和set_SomeProperty(字符串值):
public class Dummy
{
private String someProperty;
/** @property */
public void set_SomeProperty(String val) {
someProperty = val;
}
/** @property */
public String get_SomeProperty() {
return someProperty;
}
}
反过来也是如此。
如果你在J#中找到一个名为get_xxx或set_xxx的类方法,那么很可能在C#中,该对象有一个名为xxx的属性。
基本上,正如其他人所提到的,你必须在你的代码中使用Item属性:
XmlNodeList itemTransferOutNodes =
strXML.GetElementsByTagName("ItemTransferOut");
XmlElement itemInfo =
itemTransferOutNodes.Item(itemTrOutNodesCnt)
.ChildNodes.Item(0).Item["itemInfo"];
希望有所帮助:)
答案 3 :(得分:0)
使用XmlNode.Item Property (String)。来自msdn:
获取具有指定名称的第一个子元素。