<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet href="Sample.xsl" type="text/xsl"?>
<MyDoc>.....</MyDoc>
我想将属性href的值修改为'MyDoc.xsl'。我尝试过使用XPath但它什么也没有返回:
//xml-stylesheet[contains(text(), 'Sample.xsl')]/@href";
同样使用Document仅提供从MyDoc开始的元素
NodeList list = taggedC32Doc.getElementsByTagName("*");
我有什么方法可以做到这一点吗?
答案 0 :(得分:1)
您要更改的行是处理指令,而不是元素,因此您尝试将其作为元素查找都不起作用。尝试
/processing-instruction(xml-stylesheet)
然后,您可以获取该节点的数据,该数据将为href="Sample.xsl" type="text/xsl"
。执行适当的字符串操作以查找和更改该字符串中的href伪属性 - 对不起,大多数XML API都不提供任何帮助,因为就XML而言,PI的数据是未格式化的字符串,即使它的结构通常类似于属性 - 并将新数据设置回ProcessingInstruction节点。