本文整理汇总了C#中Microsoft.Office.Core.SelectSingleNode方法的典型用法代码示例。如果您正苦于以下问题:C# Microsoft.Office.Core.SelectSingleNode方法的具体用法?C# Microsoft.Office.Core.SelectSingleNode怎么用?C# Microsoft.Office.Core.SelectSingleNode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Microsoft.Office.Core
的用法示例。
在下文中一共展示了Microsoft.Office.Core.SelectSingleNode方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: replaceXmlDoc
public static void replaceXmlDoc(Office.CustomXMLPart cxp, String newContent)
{
/* Office.CustomXMLNode node = cxp.SelectSingleNode("/");
// gives you #document,
// but you can't get the root node from it?
//node = cxp.SelectSingleNode("/mypart");
*/
Office.CustomXMLNode node = cxp.SelectSingleNode("/node()");
//log.Debug(node.XML);
//log.Debug(node.XPath);
Office.CustomXMLNode parent = node.ParentNode;
log.Debug(parent.BaseName);
//parent.ReplaceChildNode(node, "mynewnode", "", Office.MsoCustomXMLNodeType.msoCustomXMLNodeElement, "");
parent.ReplaceChildSubtree(newContent, node);
//parent.RemoveChild(node); //doesn't work
//parent.AppendChildSubtree("<mynewpart><blagh/></mynewpart>");
node = cxp.SelectSingleNode("/");
log.Debug(node.XML);
}
示例2: init
public void init(
Office.CustomXMLPart answersPart,
List<Word.ContentControl> relevantRepeats,
questionnaire questionnaire,
string questionID,
XPathsPartEntry xppe)
{
List<Office.CustomXMLNode> commonAncestors =null;
foreach (Word.ContentControl repeat in relevantRepeats)
{
log.Info("considering relevantRepeat cc " + repeat.ID + " " + repeat.Tag);
TagData repeatTD = new TagData(repeat.Tag);
string repeatXPathID = repeatTD.getRepeatID();
xpathsXpath repeatXP = xppe.getXPathByID(repeatXPathID);
Office.CustomXMLNode repeatNode = answersPart.SelectSingleNode(repeatXP.dataBinding.xpath).ParentNode;
if (commonAncestors == null)
{
// First entry, so init
// Make a list of the ancestors of the
// first repeat.
commonAncestors = new List<Microsoft.Office.Core.CustomXMLNode>();
commonAncestors.Add(repeatNode);
log.Info("Added to common ancestors " + CustomXMLNodeHelper.getAttribute(repeatNode, "qref"));
addAncestors(commonAncestors, repeatNode);
}
else
{
// cross off that list anything
// which isn't an ancestor of the other repeats.
List<Microsoft.Office.Core.CustomXMLNode> whitelist = new List<Microsoft.Office.Core.CustomXMLNode>();
whitelist.Add(repeatNode);
addAncestors(whitelist, repeatNode);
removeNonCommonAncestor(commonAncestors, whitelist);
}
if (commonAncestors.Count == 0) break;
}
if (commonAncestors == null)
{
commonAncestors = new List<Microsoft.Office.Core.CustomXMLNode>();
}
// Is it OK where it is?
// Yes - if it is top level
log.Debug(questionID + " --> " + xppe.getXPathByQuestionID(questionID).dataBinding.xpath);
// eg /oda:answers/oda:repeat[@qref='rpt1']/oda:row[1]/oda:answer[@id='qa_2']
OkAsis = (xppe.getXPathByQuestionID(questionID).dataBinding.xpath.IndexOf("oda:repeat") < 0);
Microsoft.Office.Core.CustomXMLNode currentPos = null; // so we can highlight existing choice
// Yes - if it is a child of common ancestors
if (OkAsis)
{
log.Debug("its top level");
}
else
{
foreach (Microsoft.Office.Core.CustomXMLNode currentNode in commonAncestors)
{
Microsoft.Office.Core.CustomXMLNode selection =
currentNode.SelectSingleNode("oda:row[1]/oda:answer[@id='" + questionID + "']");
if (selection != null)
{
log.Debug("found it");
OkAsis = true;
currentPos = currentNode;
break;
}
}
}
// Now make the tree from what is left in commonAncestors
root = new TreeNode("Ask only once");
this.treeViewRepeat.Nodes.Add(root);
TreeNode thisNode = null;
TreeNode previousNode = null;
treeViewRepeat.HideSelection = false; // keep selection when focus is lost
TreeNode nodeToSelect = null;
foreach (Microsoft.Office.Core.CustomXMLNode currentNode in commonAncestors)
{
// Find the question associated with this repeat
string rptQRef = CustomXMLNodeHelper.getAttribute(currentNode, "qref");
//currentNode.Attributes[1].NodeValue;
question q = questionnaire.getQuestion(rptQRef);
if (q == null)
{
log.Error("no question with id " + rptQRef);
}
thisNode = new TreeNode(q.text);
thisNode.Tag = rptQRef;
if (currentNode == currentPos)
{
nodeToSelect = thisNode;
}
if (previousNode == null)
//.........这里部分代码省略.........
示例3: moveIfNecessary
/// <summary>
/// When an answer's vary in repeat changes:
/// - move the node
/// - change its xpath
/// - change the databinding in all relevant controls
/// </summary>
/// <param name="questionID"></param>
/// <param name="xp"></param>
/// <param name="answersPart"></param>
public void moveIfNecessary(string questionID, xpathsXpath xp,
Office.CustomXMLPart answersPart)
{
string varyInRepeat = getVaryingRepeat( );
if (varyInRepeat == null)
{
// make the answer top level and we're done.
NodeMover nm = new NodeMover();
nm.Move(xp.dataBinding.xpath, "/oda:answers");
nm.adjustBinding(thisQuestionControls, "/oda:answers", questionID);
}
else
{
// Move it to the selected repeat
// get the node corresponding to the repeat's row
Office.CustomXMLNode node = answersPart.SelectSingleNode("//oda:repeat[@qref='" + varyInRepeat + "']/oda:row[1]");
if (node == null)
{
log.Error("no node for nested repeat " + varyInRepeat);
}
string toRepeat = NodeToXPath.getXPath(node);
NodeMover nm = new NodeMover();
nm.Move(xp.dataBinding.xpath, toRepeat);
nm.adjustBinding(thisQuestionControls, toRepeat, questionID);
}
}
示例4: treeView_ItemDrag
//.........这里部分代码省略.........
return;
}
XPathsPartEntry xppe = new XPathsPartEntry(controlMain.model);
xppe.setup(null, CurrentPart.Id, strXPath, prefixMappings, true);
xppe.save();
td.set("od:xpath", xppe.xpathId);
if (isFlatOPC)
{
// <?mso-application progid="Word.Document"?>
// <pkg:package xmlns:pkg="http://schemas.microsoft.com/office/2006/xmlPackage">
td.set("od:progid", "Word.Document");
cc.Title = "Word: " + xppe.xpathId;
//cc.Range.Text = val; // don't escape it
cc.Range.InsertXML(val, ref missing);
}
else if (isXHTML)
{
td.set("od:ContentType", "application/xhtml+xml");
cc.Title = "XHTML: " + xppe.xpathId;
cc.Range.Text = val; // don't escape it
}
else if (isPicture)
{
PictureUtils.setPictureHandler(td);
cc.Title = "Image: " + xppe.xpathId;
string picContent = CurrentPart.SelectSingleNode(strXPath).Text;
PictureUtils.pastePictureIntoCC(cc, Convert.FromBase64String(picContent));
}
else
{
cc.XMLMapping.SetMappingByNode(Utilities.MxnFromTn(tn, CurrentPart, true));
string nodeXML = cc.XMLMapping.CustomXMLNode.XML;
log.Info(nodeXML);
cc.Title = "Data value: " + xppe.xpathId;
}
cc.Tag = td.asQueryString();
designMode.restoreState();
}
else if (controlMain.controlMode1.isModeCondition())
{
log.Debug("In condition mode");
Word.ContentControl cc = null;
try
{
// always make new
cc = ContentControlMaker.MakeOrReuse(false, Word.WdContentControlType.wdContentControlRichText, CurrentDocument, Globals.ThisAddIn.Application.Selection);
}
catch (Exception ex)
{
log.Error("Couldn't add content control: " + ex.Message);
return;
}