我从Sharepoint获得此返回值...我刚刚包含了xml片段的第一部分...
<Result ID=\"1,New\" xmlns=\"http://schemas.microsoft.com/sharepoint/soap/\">
<ErrorCode>0x00000000</ErrorCode><ID /><z:row ows_ID=\"9\"
它填充XmlNode节点对象。
如何使用xPath获取ows_id的值?
我的代码到目前为止......
XmlNode results = list.UpdateListItems(“MySharePointList”,batch);
更新
到目前为止我有这个:results.FirstChild.ChildNodes [2] .Attributes [“ows_ID”]。值
但我不确定它有多可靠,有人可以改进吗?
答案 0 :(得分:2)
我不知道它是否必然是改进,但它可能更具可读性,但更详细:
/*[local-name() = 'Result']/*[local-name() = 'row']/@ows_ID
您发布的片段可能更多,因此当针对实际的xml结果使用时,此XPath查询可能需要修复。
函数local-name()允许您忽略名称空间,这可以是恩赐和诅咒。 :)
答案 1 :(得分:0)
从root开始时:
/结果/ Z:行/ @ ows_ID
如果存在多个结果,您也可以改进搜索结果:
/结果[@ ID = '1,新'] / Z:行/ @ ows_ID
答案 2 :(得分:0)
特定的xpath调用取决于您使用的库(例如libxml xpath实现)。 但通用的xpath语句将是:
"//z:row[@ows_ID='9']"
这将选择属性ows_ID值为9的所有z:row节点。 您可以修改此查询以匹配所有z:row节点或仅匹配具有特定属性的节点。
有关详情,请点击此处:W3Schools XPath syntax
答案 3 :(得分:0)
<xsl:value-of select="Result/b:row/@ows_ID"/>
或
<xsl:value-of select="Result/b:row[@ows_ID = '9']"/>
取决于您想要的值
答案 4 :(得分:0)
您可能需要确保正确声明z名称空间前缀 - 这取决于实现。 Here's how you do it in Java's XPath implementation
然后要选择ows_ID属性的值,您需要导航到元素本身,然后使用@ows_ID获取值。