0

我对 ASP .NET 中的 XML 处理非常陌生。

我正在通过 Web 服务参考使用 asp .net 站点中的共享点列表的数据。

以下是我使用数据的代码。

TestSharePointSite.Lists lists = new global::Test.TestSharePointSite.Lists();

lists.Url = "http://intranetsharepoint/global/test/_vti_bin/Lists.asmx";
lists.Credentials = System.Net.CredentialCache.DefaultCredentials;

XmlNode n = lists.GetListItems("TestList", null, null, null, null, null, null);

for (int i = 0; i < n.ChildNodes[1].ChildNodes.Count; i++)
{
    if (n.ChildNodes[1].ChildNodes[i].Attributes != null)
    {
        foreach (XmlAttribute a in n.ChildNodes[1].ChildNodes[i].Attributes)
        {
            Response.Write("<br> .. " + a.Name + " .. " + a.InnerText);
        }
    }
}

以下是我上面代码的输出

.. ows_Content_x0020_Description .. string;#Fast Track
.. ows_Dev_x002e__x0020_Location .. 32;#Numatics Actuator Tennessee
.. ows_Strategic_x0020_Bucket0 .. 4;#Minor Revision
--------------------- Other Attributes ----------------
.. ows_Engineer .. 584;#Tilmos, Wayne [INDAUTO/ASCONUM/NOVI]
.. ows__ModerationStatus .. 0   

现在我想搜索一个特定的 XML 元素\XML 节点。我想要一个包含内容描述(这里带有名称ows_Content_x0020_Description)的节点Fast Track

我已经完成了关于 SO 的以下问题,但无法在我的代码中实现该解决方案。我也尝试在谷歌上搜索,但无法做到。提前谢谢。

按属性值选择 XML 节点

查找字符串中包含属性值的 XmlNode

4

2 回答 2

2

您应该使用 XPath 表达式进行测试。我假设变量列表是一个 XmlDocument。

XmlNode node = 
  list.SelectSingleNode("//root/ows_Content_x0020_Description[contains(.,'Fast Track')]");

请参阅http://msdn.microsoft.com/en-us/library/system.xml.xmlnode.selectsinglenode.aspx

编辑:使用XPathTester测试你的 XPath 表达式

于 2013-09-05T14:31:52.923 回答
1
   XmlDocument dddd = new XmlDocument();
            dddd.Load(@"D:\Development\xxxx\xxxxx.xml");
            XmlNode xnode = dddd.DocumentElement;
            for (int i = 0; i < xnode.ChildNodes.Count; i++)
            { 
               if(xnode.ChildNodes[i].Attributes !=null)
                   foreach (XmlAttribute a in xnode.ChildNodes[i].Attributes)
                   {
                       if (a.Name == "ows_Content_x0020_Description")
                       {
                           string nameddd = a.InnerText;
                       }
                   }

            }
于 2013-09-05T15:10:26.783 回答