如何在java中修改xml-stylesheet属性值

时间:2014-02-12 00:09:56

标签: java xml xslt xpath

<?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("*");

我有什么方法可以做到这一点吗?

1 个答案:

答案 0 :(得分:1)

您要更改的行是处理指令,而不是元素,因此您尝试将其作为元素查找都不起作用。尝试

/processing-instruction(xml-stylesheet)

然后,您可以获取该节点的数据,该数据将为href="Sample.xsl" type="text/xsl"。执行适当的字符串操作以查找和更改该字符串中的href伪属性 - 对不起,大多数XML API都不提供任何帮助,因为就XML而言,PI的数据是未格式化的字符串,即使它的结构通常类似于属性 - 并将新数据设置回ProcessingInstruction节点。