Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中修改xml样式表属性值_Java_Xml_Xslt_Xpath - Fatal编程技术网

如何在java中修改xml样式表属性值

如何在java中修改xml样式表属性值,java,xml,xslt,xpath,Java,Xml,Xslt,Xpath,同样,使用Document只提供从MyDoc开始的元素 //xml-stylesheet[contains(text(), 'Sample.xsl')]/@href"; 有什么方法可以做到这一点吗?您要更改的行是一条处理指令,而不是一个元素,因此,您尝试将其作为元素查找时,都不会起作用。试一试 NodeList list = taggedC32Doc.getElementsByTagName("*"); 然后可以获取该节点的数据,这些数据将是href=“Sample.xsl”type=“te

同样,使用Document只提供从MyDoc开始的元素

//xml-stylesheet[contains(text(), 'Sample.xsl')]/@href";

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

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

NodeList list = taggedC32Doc.getElementsByTagName("*");

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

XPath 1.0中也提供了processing-instruction()节点测试。。。。是的。我检查了REC,因为我不确定(我离开XSLT有一段时间了),不知怎么错过了它。谢谢你让我保持诚实。(再次检查…它在那里,但没有我想要的那么好的文档记录。还没有检查是否有一个勘误表文件来建议修复这个问题。)XPath 1.0通常没有像一些人希望的那样好的文档记录。没有人会去修复它。是的,我应该检查一下你的书(免费的未经请求的插件)。。。我真希望有人有时间/精力/决心为其他W3C规范做与带注释的XMLREC等价的事情,甚至将其更新为XML1.1。哦,好吧。离题,向所有人道歉。
NodeList list = taggedC32Doc.getElementsByTagName("*");
/processing-instruction(xml-stylesheet)