gpt4 book ai didi

JAVA 为 xml 的所有元素添加前缀

转载 作者:行者123 更新时间:2023-12-01 04:43:40 25 4
gpt4 key购买 nike

有什么方法可以在 java 中为 xml 的每个元素添加前缀吗?例如,我有以下 xml:

    <node1 xmlns="www.test.com">
<node2>abc</node2>
<node3>
<node3_1>test1</node3_1>
</node3>
</node1>

我想将其转换为:

    <test:node1 xmlns test="www.test.com">
<test:node2>abc</test:node2>
<test:node3>
<test:node3_1>test1</test:node3_1>
</test:node3>
</test:node1>

有没有简单的方法可以做到这一点?到目前为止我已经尝试过:

 String messageString = message.getPayloadAsString();
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder;
Document document = null;
try
{
builder = factory.newDocumentBuilder();
document = builder.parse( new InputSource( new StringReader( messageString) ) );
} catch (Exception e) {
e.printStackTrace();
}

XmlObject inboundMessageObject = XmlObject.Factory.parse(document);
XmlOptions xmlOptions = new XmlOptions();
Map<String, String> namespaceMap = new HashMap<String, String>();
namespaceMap.put("www.test.com", "test");
xmlOptions.setSaveSuggestedPrefixes(namespaceMap);

xmlObject.save(System.out, xmlOptions);

String prefixedXML = inboundMessageObject.xmlText(xmlOptions);
return prefixedXML;

我看到的是,prefixedXML 字符串与 messageString 字符串相同。

最佳答案

尝试

xml = xml.replaceFirst("xmlns=", "xmlns:test=").replaceAll("<(/?)", "<$1test:");

关于JAVA 为 xml 的所有元素添加前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16148941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com