我正在研究 SDL Tridion 2011 SP1 中的 Tom.Net API。我正在尝试检索 XhtmlField 的“源”部分。
我的来源看起来像这样。
<Content>
<text>
<p xmlns="http://www.w3.org/1999/xhtml">hello all<strong>
<a id="ID1" href="#" name="ZZZ">Name</a>
</strong></p>
</text>
</Content>
我想获取这个“文本”字段的来源并处理带有 name 的标签a
。
我试过以下:
ItemFields content = new ItemFields(sourcecomp.Content, sourcecomp.Schema);
XhtmlField textValuesss = (XhtmlField)content["text"];
XmlElement textxmlelement = textValuesss.Definition.ExtensionXml;
Response.Write("<BR>" + "count:" + textxmlelement.ChildNodes.Count);
for (int i = 0; i < textxmlelement.ChildNodes.Count; i++)
{
Response.Write("<BR>" + "nodes" + textxmlelement.ChildNodes[i].Name);
}
//get all the nodes with the name a
XmlNodeList nodeswithnameA = textxmlelement.GetElementsByTagName("a");
foreach (XmlNode eachNode in nodeswithnameA)
{
//get the value at the attribute "id" of node "a"
string value = eachNode.Attributes["id"].Value;
Response.Write("<BR>" + "idValue" + value);
}
我没有得到任何输出。此外,我得到的计数为零。
我得到的输出:
计数:0
尽管我在该领域有一些子标签,但我不明白为什么 0 会以Count
.
任何人都可以建议所需的修改。
谢谢你。