仅当我删除此超链接时:xmlns =“ http://www.w3.org/2001/10/synthesis” 从Xml文件的顶部开始,我的Xpath选择是否起作用。 当我放回namespace-hyperlink时,超链接会阻止我的Xpath选择更改节点属性值。
我曾尝试更改我的xPath方法,使用正斜杠, 然后两个,按名称选择节点,但是除非删除超链接,否则我无法使任何xpath选择起作用。然后这个xPath可以正常工作 StrXpath =“ // prosody /” +“ @contour”;
我查看了其他人已回答的类似问题和答案。但是都不太合适。
<?xml version="1.0"?>
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"
xml:lang="en-ES">
<voice age="69" gender="neutral">
<prosody
rate="fast"
contour='(0%,+80Hz) (10%,+80%) (40%,+80Hz)'>
<p>
<s>Morning Mind Mold</s>
<voice gender="female">
<s>Getting Started is hard, Every Day.</s>
</voice>
</p>
</prosody>
</voice>
</speak>
C#代码:
List<String> lstNodeAttributeValue = new List<String>();
lstNodeAttributeValue.Add(this.Model.IntPropDP_ProsodyContour.ToString());
StrXpath = "//prosody/" + "@contour";
XmlNodeList xmlNodesListAttributes = doc.SelectNodes(StrXpath);
for (uint index = 0; index < xmlNodesListAttributes.Length; index++)
{
xmlNodesListAttributes
.Item(
index
)
.NodeValue = item;
Debug.WriteLine($"\nitem:\t{item}");
}
预先感谢, 亚当
我希望有人会告诉我为什么命名空间超链接会阻止我的xpath选择,
和实际结果,一些代码可以解决超链接,而不必在选择xpath之前将其删除,然后在之后进行替换。