Tag: xml

java.lang.IllegalArgumentException:找不到片段FmMenu的id 0x7f090047(“项目名称”:id / content)的视图

只是想与我为客户做的项目分享一个问题。 每当我进入我的IntroActivity并按下按钮将我带到MenuActivity ,它就会崩溃。 这是错误日志: 02-16 18:49:49.393 1208-1208/com.wlodsgn.bunbunup E/FragmentManager﹕ No view found for id 0x7f090047 (com.wlodsgn.bunbunup:id/linear) for fragment FmMenu{b1e537f0 #0 id=0x7f090047} 02-16 18:49:49.393 1208-1208/com.wlodsgn.bunbunup E/FragmentManager﹕ Activity state: 02-16 18:49:49.423 1208-1208/com.wlodsgn.bunbunup E/FragmentManager﹕ Local FragmentActivity b1e1d1b8 State: 02-16 18:49:49.423 1208-1208/com.wlodsgn.bunbunup E/FragmentManager﹕ mCreated=falsemResumed=false mStopped=false mReallyStopped=false 02-16 18:49:49.423 1208-1208/com.wlodsgn.bunbunup E/FragmentManager﹕ mLoadersStarted=false 02-16 18:49:49.443 1208-1208/com.wlodsgn.bunbunup E/FragmentManager﹕ FragmentManager misc state: 02-16 18:49:49.443 […]

Java:解析XML文件:DOM,SAX还是StAX?

我正在使用Apache Tomcat开发RSS feed聚合器。 我想知道使用哪个解析器来读取RSS源。 我应该使用DOM,SAX还是StAX? 我知道有一些特定的库可以用java阅读RSS源,但由于这是一个大学项目,我不应该使用它们。 谢谢。

Java:编组对象 – 在xml中删除额外的ns2注释

我试图根据定义的模式将对象中的数据编组到xml文件中。 但是,当我打印出xml文件时,我在xml标签上收到了额外的注释。 有没有办法摆脱额外的命名空间注释(即ns2) 这是我从编组中收到的xml的一个例子。 steak water 我想要的是这样的: steak water 这就是我的Java代码正在做的事情: JAXBContext context = JAXBContext.newInstance(“com.schema”); JAXBElement element = new JAXBElement (new QName(“FoodSchema”), Food.class, foodSchema); Marshaller marshaller = context.createMarshaller(); OutputStream os = new FileOutputStream(object.getFilePath()); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); marshaller.marshal(element, os); 任何帮助深表感谢! 谢谢!

Java SAX解析

我需要解析一个XML流。 因为我只需要做一次并构建我的java对象,所以SAX看起来是自然的选择。 我正在扩展DefaultHandler并实现startElement,endElement和characters方法,在我的类中有成员保存当前读取值(在characters方法中)。 我做我需要的东西没有问题,但我的代码变得非常复杂,我确信没有理由这样做,我可以做不同的事情。 我的XML结构是这样的: 2009 9 true 2007 11 2009 7 当我意识到在文件的几个区域中使用相同的标记名称时,我的问题就出现了。 例如,玩家和团队都存在id和name。 我想创建我的java类Player和Team的实例。 在解析时,我保留了布尔标志,告诉我我是否在团队部分,以便在endElement中我知道该名称是团队的名称,而不是玩家的名字等等。 这是我的代码的样子: public class MyParser extends DefaultHandler { private String currentValue; private boolean inTeamsSection = false; private Player player; private Team team; private List teams; public void characters(char[] ch, int start, int length) throws SAXException { currentValue = new String(ch, […]

使用nodeList创建XML文档

我需要使用NodeList创建一个XML Document对象。 有人可以帮我做这件事。 我已经向您展示了下面的代码和xml import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.xpath.*; import org.w3c.dom.*; public class ReadFile { public static void main(String[] args) { String exp = “/configs/markets”; String path = “testConfig.xml”; try { Document xmlDocument = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(path); XPath xPath = XPathFactory.newInstance().newXPath(); XPathExpression xPathExpression = xPath.compile(exp); NodeList nodes = (NodeList) xPathExpression.evaluate(xmlDocument, XPathConstants.NODESET); } catch (Exception ex) { ex.printStackTrace(); } […]

使用JAXB编组LocalDate

我正在构建一系列链接类,其实例我希望能够编组为XML,因此我可以将它们保存到文件中,稍后再读取它们。 目前我使用以下代码作为测试用例: import javax.xml.bind.annotation.*; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; import java.time.LocalDate; public class LocalDateExample { @XmlRootElement private static class WrapperTest { public LocalDate startDate; } public static void main(String[] args) throws JAXBException { WrapperTest wt = new WrapperTest(); LocalDate ld = LocalDate.of(2016, 3, 1); wt.startDate = ld; marshall(wt); } public static void marshall(Object jaxbObject) […]

Xpath转换在java中不起作用

这是我的xml文档。 我想使用xml签名仅签署userID部分。 我正在使用xpath转换来选择该特定元素。 xyz text http://localhost:8080/saml/SProvider.jsp 我使用以下代码添加转换: transformList.add(exc14nTransform); transformList.add(fac.newTransform(Transform.XPATH, new XPathFilterParameterSpec(“samlp:AuthnRequest/UserID xmlns:samlp=\”urn:oasis:names:tc:SAML:2.0:protocol\””))); 但我得到以下内容: Original Exception was javax.xml.transform.TransformerException: Extra illegal t okens: ‘xmlns’, ‘:’, ‘samlp’, ‘=’, ‘”urn:oasis:names:tc:SAML:2.0:protocol”‘ 所以,我尝试删除xmlns部分。 transformList.add(fac.newTransform(Transform.XPATH, new XPathFilterParameterSpec(“samlp:AuthnRequest/UserID”))); 但它签署了整个文件并给出了以下信息: com.sun.org.apache.xml.internal.security.utils.CachedXPa thFuncHereAPI fixupFunctionTable INFO: Registering Here function 问题是什么? 编辑 正如@JörnHorstmann所说,这个消息只是一个日志或类似的东西。 现在的问题是,即使在给出xpath查询之后,整个文档也会被签名而不仅仅是UserID。 我通过在签署文档后更改元素的值来确认这一点。 结果是文档没有得到validation(如果它只签署了UserID部分,那么对所做的任何更改都应该产生有效的签名。)

遍历NodeList时删除DOM节点

我即将删除XML文档中的某些元素,使用如下代码: NodeList nodes = …; for (int i = 0; i < nodes.getLength(); i++) { Element e = (Element)nodes.item(i); if (certain criteria involving Element e) { e.getParentNode().removeChild(e); } } 这会干扰NodeList的正确遍历吗? 用这种方法还有其他注意事项吗? 如果这是完全错误的,那么正确的做法是什么?

解析java中的xml字符串?

你如何解析存储在java字符串对象中的xml? Java的XMLReader仅解析URI或输入流中的XML文档。 是不是可以从包含xml数据的String解析? 现在我有以下内容: try { SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser sp = factory.newSAXParser(); XMLReader xr = sp.getXMLReader(); ContactListXmlHandler handler = new ContactListXmlHandler(); xr.setContentHandler(handler); xr.p } catch (ParserConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); } 在我的处理程序上我有这个: public class ContactListXmlHandler extends DefaultHandler implements […]

在不改变XML的情况下,在Java中解析包含HTML实体的XML文件

我必须用Java解析一堆XML文件,有时 – 并且无效地 – 包含HTML实体,例如— , > 等等。 我理解处理这个问题的正确方法是在解析之前向XML文件添加合适的实体声明。 但是,我无法做到这一点,因为我无法控制这些XML文件。 是否有某种我可以覆盖的回调,只要Java XML解析器遇到这样的实体就会调用它? 我无法在API中找到一个。 我想用: DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder parser = dbf.newDocumentBuilder(); Document doc = parser.parse( stream ); 我发现我可以覆盖org.xml.sax.helpers.DefaultHandler resolveEntity ,但是如何在更高级别的API中使用它? 这是一个完整的例子: public class Main { public static void main( String [] args ) throws Exception { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder parser = dbf.newDocumentBuilder(); […]