Ich arbeite an Tom.Net-APIs in SDL Tridion 2011 SP1. Ich versuche, den "Quelle" Teil des XhtmlField zu erhalten.Abrufen der vollständigen XML-Quelle für ein Xhtml-Feld mithilfe von Tom.Net-APIs in SDL Tridion 2011 SP1
Meine Quelle sieht so aus.
<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>
Ich mag die Quelle dieses „text“ Feld bekommen und die Tags mit dem Namen a
verarbeiten.
Ich habe versucht, folgende:
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);
}
ich keine Ausgabe bin immer. Mehr darüber bekomme ich die Zählung als Null.
Ausgang I bekam:
Zahl: 0
Obwohl ich einige Kind Tags im Feld haben, erhalte ich nicht, warum 0 als Count
kommt.
Kann jemand die Änderung vorschlagen vorschlagen.
Vielen Dank.
Er für mehrere Anker suchen, so .SelectNodes() besser wäre –
der Tat. Der Hauptpunkt war die Verwendung von XPath anstelle von Schleifen über untergeordnete Knoten. –